3 回答
TA贡献1934条经验 获得超2个赞
CryptoJS.AES.encrypt的输出是一个CipherParams对象,其中包含密钥,IV,可选的盐和密文。您引用的字符串是与OpenSSL兼容的格式化字符串。
var encrypted = CryptoJS.AES.encrypt("Message", "Secret Passphrase");
alert(encrypted.key); // 74eb593087a982e2a6f5dded54ecd96d1fd0f3d44a58728cdcd40c55227522223
alert(encrypted.iv); // 7781157e2629b094f0e3dd48c4d786115
alert(encrypted.salt); // 7a25f9132ec6a8b34
alert(encrypted.ciphertext); // 73e54154a15d1beeb509d9e12f1e462a0
alert(encrypted); // U2FsdGVkX1+iX5Ey7GqLND5UFUoV0b7rUJ2eEvHkYqA= (OpenSSL-compatible format strategy)
CryptoJS的默认加密模式是CBC。在RSA加密的交换过程中,应将IV与对称密钥一起传递。使用服务器上的对称密钥,IV和密文字节数组,您可以在Go中对其进行解密,如下所示:
c, err := aes.NewCipher(key)
cfbdec := cipher.NewCBCDecrypter(c, iv)
plaintext := make([]byte, len(ciphertext))
cfbdec.CryptBlock(plaintext, ciphertext)
- 3 回答
- 0 关注
- 415 浏览
添加回答
举报