该功能将接收上传的文件,并将加密此文件以保存在服务器中,我考虑使用openssl_encrypt。
加密类型为AES256。
在请求Web服务之后,将返回一个base 64加密文档,使用crypto-js在JS端解密。
要知道,我的问题是如何使用openssl_encrypt php函数进行加密过程?
加密过程:
解密过程:
上面的过程,是我想到的想法,如果我错了或有错误,请纠正我。
阶段1:
PHP代码:
处理完文件后:
$encryptionMethod = "AES-256-CBC";
$secret = "1234567890@@@@@@@@@@123456789012"; //must be 32 char length
$iv = substr($secret, 0, 16);
$encryptedMessage = openssl_encrypt($textToEncrypt, $encryptionMethod, $secret,0,$iv);
在解密的jquery上没有工作:
var ckey = "1234567890@@@@@@@@@@123456789012";
var decrypted = CryptoJS.AES.decrypt(data.content, ckey, { iv: "1234567890@@@@@@" });
pdf再次生成但我无法打开,显示错误消息" Acrobat无法打开文件" ..
为什么我会这样做?
答案 0 :(得分:0)
加密/解密工作!
PHP SIDE TO ENCRYPT
$encryptionMethod = "AES-256-CBC";
$secret = "1234567890@@@@@@@@@@123456789012"; //must be 32 char length
$iv = substr($secret, 0, 16);
$encryptedMessage = openssl_encrypt($textToEncrypt, $encryptionMethod, $secret,0,$iv);`
要解密的CRYPTOJS
var cipherParams = CryptoJS.lib.CipherParams.create({ciphertext: CryptoJS.enc.Hex.parse(data.toString())});
var decrypted = CryptoJS.AES.decrypt(cipherParams, CryptoJS.enc.Hex.parse(key), { iv: CryptoJS.enc.Hex.parse(iv) });
window.open("data:application/pdf;base64, " + btoa(decrypted.toString(CryptoJS.enc.Utf8)));