将PHP中的openssl_加密函数改编为MySQL
我正在尝试将PHP函数将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
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
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):
- 选择子字符串(SHA2('这是我的秘密iv',256),1,16)李>
- 修剪(“palima”)
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é,我错了