Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/30.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 角度2:window.crypto.minute.importKey在';本地主机';但不是在';ip';_Javascript_Angular_Encryption_Webcrypto Api - Fatal编程技术网

Javascript 角度2:window.crypto.minute.importKey在';本地主机';但不是在';ip';

Javascript 角度2:window.crypto.minute.importKey在';本地主机';但不是在';ip';,javascript,angular,encryption,webcrypto-api,Javascript,Angular,Encryption,Webcrypto Api,我是Angular 2的新手。我正在尝试实现一个登录表单,在某些加密步骤之后将emailid和密码发送到服务器 我已经通过使用AES-CTR实现了AES-ECB 我使用了“importKey”和“encrypt”方法,如下所示: public deriveAKey(input, encryptKey, cryptoIV) { var ref: TopDivComponent = this; console.log('Testing before importKey...');

我是Angular 2的新手。我正在尝试实现一个登录表单,在某些加密步骤之后将emailid和密码发送到服务器

我已经通过使用AES-CTR实现了AES-ECB

我使用了“importKey”和“encrypt”方法,如下所示:

public deriveAKey(input, encryptKey, cryptoIV) {

    var ref: TopDivComponent = this;
    console.log('Testing before importKey...');

    window.crypto.subtle.importKey(
        "raw",
        ref.stringToArrayBuffer(encryptKey),
        {
            name: "AES-CTR",
        },
        true,
        ["encrypt"]
    ).then(function (key) {
        console.log('Inside then...');
        var newvar = ref.stringToArrayBuffer(cryptoIV);
        var encrypt = window.crypto.subtle.encrypt(
            {
                name: "AES-CTR",
                counter: newvar,
                length: 128,
            },
            key,
            ref.stringToArrayBuffer(input)
        ).then(function (encrypted) {
            var temp = ref.arrayBufferToString(encrypted);
            console.log('Encrypted First: ' + encrypted);
            console.log('Temp: ' + temp);
            console.log('Key: ' + key);
            let fin_encrypted = btoa(temp);
            // console.log('Encrypted Snc/d: ' + fin_encrypted);
            ref.response(fin_encrypted);
            // console.log('From deriveKey: ' + fin_encrypted);
        });
    });
}
我使用本地服务器获取响应。使用localhost时,一切正常。请求和响应正确发送并从服务器获取。但是,当通过IP连接时,它会显示一个错误“NotSupportedError:只允许安全源”


当我使用Chrome canary时,它说importKey方法无法识别。因此,当我使用Chrome“控制台”时,控件并没有超出importKey方法的范围。可能是什么问题?

Chrome限制WebCryptographyApi的使用以确保来源安全。它的意思是“https”
localhost
是为开发启用的特殊地址。因此,要在真实环境中使用WebCryptop,您需要设置SSL/TLS服务器。Chrome限制WebCryptographyApi的使用,以确保来源安全。它的意思是“https”
localhost
是为开发启用的特殊地址。因此,要在真实环境中使用WebCrypto,您需要设置SSL/TLS服务器