[英]Decrypt AES in mysql that was encrypted with CryptoJS
在我的數據庫中,我有一列以這種形式存儲 cryptojs 加密值:
U2FsdGVkX1/BpEUjr5y+hivlNpUep+HZQG4Tw8bmTvQ=
當我用cryptojs解密它時,一切都很好。
let decryptedValue = cryptoJS.AES.decrypt(
encryptedField,
secretKey
);
但是用 mysql 解密它會返回 null。
我嘗試將加密的字符串轉換為二進制,然后用mysql的aes_decrypt()解密它,但它返回null。
SELECT convert(AES_DECRYPT(binary(encrypted_field),'secret_key') using utf8) as decrypt
加密的值是數字,我需要解密它們以便在 mysql 中使用它們進行一些計算。
我不知道我解密它或做cryptojs的方式是否有問題,mysql有不同的使用AES加密和解密的方式。
先感謝您。
看起來您的初始字符串是Base64 Encoded 。 cryptoJS.AES
或其他一些進程可能正在獲取加密字節並將它們作為Base64存儲在數據庫中。
您的數據庫解密例程可能假定原始字節,因此您需要將Base64字符串(檢查 mysql 的 base64 例程的網絡)轉換為實際字節,然后將它們傳遞給AES_DECRYPT
ZC1C425Z574117AB984D41
不確定您的問題是否仍然存在,但這里建議使用 CryptoJS 的替代品。 我找到了 MySQL AES 加密和解密的 Node JS 實現。 這個庫幫助我加密在 MySQL 中可讀的數據。
鏈接在這里:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.