小编Pho*_*nix的帖子

将指针交换到指针

在我编写的这个程序中,我使用2个矩阵声明为指针指针.最初,矩阵B等于矩阵A,所有的变化都是对矩阵B进行的(我不需要修改A中的值,因为我使用这些值来计算其他东西,如果我直接修改它,我实际上得到了错误的结果).最后,我需要交换两个矩阵中的值.我的程序已经在运行和编译,但要交换我用过的矩阵

for(i=0;i<n;++i)
    for(j=0;j<n;++j)
        A[i][j]=B[i][j];
Run Code Online (Sandbox Code Playgroud)

我知道这不是最好的方法,所以我想知道是否有办法通过指针交换我的矩阵.我已经尝试过自己做了.但我是C++编程的新手,我似乎无法做到这一点:(.

这是我的代码草图:

void swap(int **A, int **B){
?
}

main (){
int **A, **B;
*code*
swap(A,B);
}
Run Code Online (Sandbox Code Playgroud)

c++

2
推荐指数
1
解决办法
145
查看次数

使用openssl解密mcrypt

由于mcrypt被认为是过时的,我的任务是升级当前代码以使用openssl.听起来很简单,但......经过几天的尝试和失败后,我觉得自己很疯狂.

我的问题是:你有什么方法可以用之前用mcrypt加密的openssl数据解密吗?我已经阅读了很多这方面的帖子,大多数人都说在运行mcrypt之前需要先前手动填充数据.问题是mcrypt-ed数据已经加密(使用mcrypt提供的自动空填充)并驻留在数据库中,因此无法和/或期望对其进行修改.

提及:

  1. 使用的算法是rijndael-128 cbc,带有32字节密钥(所以我使用aes-256-cbc表示openssl).
  2. 我正在使用php(php-crypto)的openssl包装器.
  3. 我已经设法使逆操作工作(用mcrypt解码openssl),只需剥离最终解码的字符(如果它们是非字母数字).
  4. 在mcrypting之前手动填充数据然后使用openssl解密它就像魅力一样,但这不是问题所在.

一些代码片段:

// Simple mcrypt encrypt, decrypt with php-crypto example
// This doesn't work and produces a "Finalizing of cipher failed" error
        $data = "This is a text";
        $strMcryptData=mcrypt_encrypt(MCRYPT_RIJNDAEL_128, $key, $data, MCRYPT_MODE_CBC, $iv);

        $algorithm = 'aes-256-cbc';
        $cipher = new Cipher($algorithm);
        $sim_text = $cipher->decrypt($strMcryptData, $key, $iv);

// Simple mcrypt encrypt with padding, decrypt with php-crypto
// Works and produces the correct text on decryption
        $pad =  $blocksize - (strlen($data) % $blocksize);
        $text = $data; …
Run Code Online (Sandbox Code Playgroud)

php encryption openssl cryptography mcrypt

2
推荐指数
2
解决办法
4778
查看次数

标签 统计

c++ ×1

cryptography ×1

encryption ×1

mcrypt ×1

openssl ×1

php ×1