2017-02-10 26 views
-1

この暗号をcrypto-jsで復号化することはできません。php暗号化から暗号文を復号できない

プレーンテキストキー: 'abcdabcdabcdabcd'

IV:'0000000000000000'

秘密のメッセージ:'5555555555555555'

暗号文:'jIwKE2X1N/1aiZfWoaY+USXRnslF1tsXKVtUON8ucn0='

マイ暗号jsのコードは次のようになります。

var iv = '0000000000000000'; 
var aesKey = 'abcdabcdabcdabcd'; 
var ciphertext = 'jIwKE2X1N/1aiZfWoaY+USXRnslF1tsXKVtUON8ucn0='; 
var decryption = CryptoJS.AES.decrypt(ciphertext, aesKey, {iv: iv}); 
console.log(decryption.toString(CryptoJS.enc.Utf8)); 

このコードを実行した後、console.logは空です。何が間違っているのですか?

+0

私はよく分かりませんが、このように見えます。 $ iv = str_repeat( "\ 0"、openssl_cipher_iv_length( 'AES-128-CBC')); 私はそれが適切に '0000000000000000' – Agr

+0

だと思います。また復号化オブジェクトのリンクを添付しました https://ibb.co/cg8c8v – Agr

+0

'CryptoJS.enc.Hex.parse'をあなたの' 'あなたのIVはPHPでの一連のヌルバイトですが、JSでは' 48'バイトの連続(文字 '0'のASCII値)です。 'Hex.parse'は入力を2文字のバイト列として読み込みます。代わりに、一連の0の代わりに実際のヌルバイトを使用してください。 "\ 0 \ 0 \ 0 \ 0 ..." – apsillers

答えて

1

ない考える

をフォーマットするために必要な答えは、:

進として表示
keyString:   "abcdabcdabcdabcd" 
ivString:   "0000000000000000" 
secretMessageString: "5555555555555555" 
ciphertextBase64: "jIwKE2X1N/1aiZfWoaY+USXRnslF1tsXKVtUON8ucn0=" 

オンライン AES Calculator Encryptにこれらの値を置く
keyHex:     61626364616263646162636461626364 
ivHex:     30303030303030303030303030303030 
secretMessageHex:  35353535353535353535353535353535 
secretMessageHexPadded: 3535353535353535353535353535353510101010101010101010101010101010 
ciphertextHex:   8c8c0a1365f537fd5a8997d6a1a63e5125d19ec945d6db17295b5438df2e727d 

ciphertextHexCalculated: 319C920C815076E0DD863FCB5AE8DDBD6D8065E9B4D285E06B0F58DD1F0EA3B7 

これは、質問文の暗号文と同じではありません。

パラメータ、オプション、またはデータで正しくないものがあります。

しかし解読が0x00のバイトのIVで動作ん:クリアテキストは暗号化されたテキストとして使用されているため、誤っている

keyString:   "abcdabcdabcdabcd" 
ivHex: 00000000000000000000000000000000 
secretMessageString: "5555555555555555" 

Online AES Calculator Decrypt

を。

+0

あなたの答えをありがとう、それは私が間違ったデータを貼り付けることを意味しますか? 私の愚かな質問buのため申し訳ありません、私が暗号を扱っているのは初めてです。 – Agr