小编JYF*_*JYF的帖子

使用用户提交的密码进行WebCrypto字符串加密

使用JavaScript和WebCrypto API(不使用任何外部库),使用从用户提交的密码派生的密钥对字符串进行加密的最佳方法是什么?

这是一些代码,其中键不是派生的,而是仅由generatekey()函数生成的。目标是加密字符串,然后解密它以验证我们是否返回了原始字符串:

var secretmessage = "";
var password = "";
var key_object = null; 
var promise_key = null;
var encrypted_data = null;
var encrypt_promise = null;
var vector = window.crypto.getRandomValues(new Uint8Array(16));
var decrypt_promise = null;
var decrypted_data = null;

function encryptThenDecrypt() {
    secretmessage = document.getElementById("secretmessageField").value; // some string to encrypt

    promise_key = window.crypto.subtle.generateKey(
        {
            name: "AES-GCM",
            length: 128
        },
        false,
        ["encrypt", "decrypt"]
    );
    promise_key.then(function(key) {
        key_object = key;
        encrypt_data();
    });
    promise_key.catch = function(e) {
        alert("Error while generating …
Run Code Online (Sandbox Code Playgroud)

javascript string encryption passwords webcrypto-api

6
推荐指数
1
解决办法
1224
查看次数