Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/256.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将PHP中的openssl_加密函数改编为MySQL_Php_Mysql_Encryption_Kettle_Pyopenssl - Fatal编程技术网

将PHP中的openssl_加密函数改编为MySQL

将PHP中的openssl_加密函数改编为MySQL,php,mysql,encryption,kettle,pyopenssl,Php,Mysql,Encryption,Kettle,Pyopenssl,我正在尝试将PHP函数openssl\u encrypt改编成MySQL,以便能够通过Ketter实现同样的功能 使用PHP我会: base64_encode(openssl_encrypt(trim('palima'), 'AES-256-CBC', hash('sha256', 'e99 008846853ff3b725c27315e469fbc'), 0, substr(hash('sha256', 'This is my secret iv' ), 0, 16))); 其中: “pa

我正在尝试将PHP函数
openssl\u encrypt
改编成MySQL,以便能够通过Ketter实现同样的功能

使用PHP我会:

base64_encode(openssl_encrypt(trim('palima'), 'AES-256-CBC', hash('sha256', 'e99
008846853ff3b725c27315e469fbc'), 0, substr(hash('sha256', 'This is my secret iv'
), 0, 16)));
其中:

  • “palima”是我试图加密的密钥
  • “AES-256-CBC”是密码方法
  • 哈希('sha256','e99008846853ff3b725c27315e469fbc')是我的密码
  • 0是我选择的选项
  • substr(hash('sha256','这是我的秘密iv'),0,16))是iv
MySQL

set block_encryption_mode = 'aes-256-cbc';
select TO_BASE64(AES_ENCRYPT(TRIM('palima'),sha2('e99008846853ff3b725c27315e469f
bc',256),substring(sha2('This is my secret iv',256),1,16)));
我得到的中期结果是:

  • 选择SHA2('e99008846853ff3b725c27315e469fbc',256):
78F9F18E2BD0E8C8F85DB28E64AFFD263D087DB78EB73B2ADD5054379159

  • 选择子字符串(SHA2('这是我的秘密iv',256),1,16)
413149ee42cfcda5

  • 修剪(“palima”)
帕利马

所有mid结果都是相同的。因此,我得出的结论是,
openssl\u encrypt
AES\u encrypt
的工作方式不同


您知道如何正确执行从PHP
openssl\u encrypt
到MySQL的函数吗?高级版谢谢。

您为什么不使用php的哈希函数呢?您的加密不安全-
IV
每次加密数据时必须不同,并且必须将该IV传递给解密方法。你没那么做。而且,无缘无故地混合两种系统也不会对你有任何好处。如果你用PHP加密,用MySQL解密,你会得到什么?您甚至向查询提供了解密密钥(因为对称密钥可见,所以不安全),您也可以使用PHP进行解密并将其发送到MySQL。@Mjh这是因为我们正在通过MySQL(我们正在使用pdi kettle程序)向数据库创建大量新用户,而另一个客户端希望使用PHP获取数据。所以你建议通过php函数加密密码并发送到MySQL?@Eric对不起,我不明白你的意思。你说我在PHP中的函数没有使用PHP的哈希函数?谢谢你的时间。@Guifré,我错了