每次加密文本都会更改-Msrcrypto

时间:2015-03-02 12:31:56

标签: javascript html encryption

打算通过msrCrypto(MsrRsaCryptoSample.html)加密文字。

我可以使用RSA公钥和私钥对加密数据并解密。但是仍然不清楚这一事实,每当我刷新网页时,加密数据的变化是什么。

跟随功能的目的究竟是什么:

function bytesToHexString(bytes) {
    console.log("---------------bytesToHexString------------------");
    var result = "";
    for (var i = 0; i < bytes.length; i++) {
        if (i % 4 === 0 && i !== 0) result += "-";
        var hexval = bytes[i].toString(16).toUpperCase();
        result += hexval.length === 2 ? hexval : "0" + hexval;
    }
    console.log("result : " + result);
    return result;
}

3 个答案:

答案 0 :(得分:3)

如果两条消息相同,则确定性加密会泄漏。对于非对称加密,这一点尤其严重,因为攻击者可以加密无限数量的所选消息。为了避免这种弱点,标准RSA填充是随机的。

您发布的代码与该随机化无关,它只是将二进制数据转换为可打印的十六进制字符串。

答案 1 :(得分:1)

目的相对明确。它在函数名称中。它需要一个字节数组并将其转换为十六进制字符串

答案 2 :(得分:0)

加密方法中使用的填充方案负责每次生成的随机加密字符串。

 var cryptoOperation = subtle.encrypt(
        { name: "**RSAES-PKCS1-v1_5**" },
        publicKeyHandle,
        plainTextBytes);

其中RSAES-PKCS1-v1_5是填充方案       publicKeyHandle是字节形式的公钥       plainTextBytes是要以字节形式加密的消息。