crypto-js生成的密文每次都不一样,哪位大佬帮忙看一下
javascript吧
全部回复
仅看楼主
level 3
CloudTown 楼主
程序:
function encrypt(plainText, password, iv) { const encrypted = CryptoJS.AES.encrypt(plainText, password, { iv: CryptoJS.enc.Hex.parse(iv) }).toString(); return encrypted; }
function encryptAndSend() {
const plainText = document.getElementById('textInput').value;
const key = document.getElementById('keyInput').value;
const iv = CryptoJS.SHA256(key).toString().substring(0, 32);
const encryptedText = encrypt(plainText, key, iv);
2023年11月19日 03点11分 1
level 13
crypto 系列散列算法就是为了避免每次计算的结果相同存在的,它会在散列过程中自动给你加盐(随机值),明文与盐值以某种方式组合进行散列得到一个哈希值,这个值与盐值再以某种方式拼接起来就是结果。由于含有随机值,每次得到的结果不一样,但是由于结果中含有散列时使用的随机值,验证时可以提取出随机值用于验证,不影响表面上的验证过程。这个属于密码学问题,换个地方问吧。
2023年11月21日 17点11分 0
level 1
每次生成出来肯定是不一样的啊
2023年11月21日 05点11分 4
level 3
CloudTown 楼主
问题是,我每次给出的密钥和明文都是相同的,iv是通过计算密钥的md5值得出的(所以密钥相同的前提下iv一定是相同地区,如图)。但现在明文相同,密钥相同,生成的密文却不相同(库版本不变)
2023年11月21日 15点11分 5
1