簡體   English   中英

解密用 CryptoJS 加密的 mysql 中的 AES

[英]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 中可讀的數據。

鏈接在這里:

https://www.npmjs.com/package/mysql-aes

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM