Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/418.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 使用加密的RSA密钥进行签名无法使用jsrsasign_Javascript_Encryption_Rsa_Digital Signature - Fatal编程技术网

Javascript 使用加密的RSA密钥进行签名无法使用jsrsasign

Javascript 使用加密的RSA密钥进行签名无法使用jsrsasign,javascript,encryption,rsa,digital-signature,Javascript,Encryption,Rsa,Digital Signature,在使用库javascript库jsrsasign with angularjs时,我们尝试使用SHA256算法使用私钥对值进行RSA签名 私钥如下所示:(即------开始加密私钥------结束加密私钥------) 片段: var sig = new KJUR.crypto.Signature({"alg": "SHA256withRSA", "prov": "cryptojs/jsrsa"}); var key = KEYUTIL.getKey(privateKey, 'passwor

在使用库javascript库jsrsasign with angularjs时,我们尝试使用SHA256算法使用私钥对值进行RSA签名

私钥如下所示:(即------开始加密私钥------结束加密私钥------)

片段:

var sig = new KJUR.crypto.Signature({"alg": "SHA256withRSA", "prov":   "cryptojs/jsrsa"});
var key = KEYUTIL.getKey(privateKey, 'password');
sig.initSign(key);
sig.updateString(data);
var signature = sig.sign();
在使用此过程中,我们在第二行收到以下错误消息: “bi.intValue不是函数”

在调试过程中,所使用的值的alpha字符似乎使BigInteger库的函数失败

我的第一个想法是它是私钥文件,然而,我们能够使用NodeJS的加密库完成签名过程,并且它可以按预期工作


我尝试了上述的不同版本,但没有成功。

此问题的解决方案与includes库相关。这在jsrsasign网站上并不清楚。由于错误非常模糊,一开始很难判断。为了使其正常工作,您必须包括以下库

<script src="http://yui.yahooapis.com/2.9.0/build/yahoo/yahoo-min.js"></script>

<script src="bower_components/crypto-js/core.js"></script>
<script src="bower_components/crypto-js/x64-core.js"></script>
<script src="bower_components/crypto-js/pbkdf2.js"></script>
<script src="bower_components/crypto-js/crypto-js.js"></script>
<script src="bower_components/crypto-js/hmac.js"></script>
<script src="bower_components/crypto-js/hmac-sha256.js"></script>
<script src="bower_components/crypto-js/sha1.js"></script>
<script src="bower_components/crypto-js/sha256.js"></script>

<script language="JavaScript" type="text/javascript" src="bower_components/jsrsasign/ext/base64.js"></script>
<script language="JavaScript" type="text/javascript" src="bower_components/jsrsasign/ext/jsbn.js"></script>
<script language="JavaScript" type="text/javascript" src="bower_components/jsrsasign/ext/jsbn2.js"></script>
<script language="JavaScript" type="text/javascript" src="bower_components/jsrsasign/ext/rsa.js"></script>
<script language="JavaScript" type="text/javascript" src="bower_components/jsrsasign/ext/rsa2.js"></script>
<script language="JavaScript" type="text/javascript" src="bower_components/jsrsasign/crypto-1.1.js"></script>
<script language="JavaScript" type="text/javascript" src="bower_components/jsrsasign/rsasign-1.2.js"></script>
<script language="JavaScript" type="text/javascript" src="bower_components/jsrsasign/rsapem-1.1.js"></script>
<script language="JavaScript" type="text/javascript" src="bower_components/jsrsasign/asn1-1.0.js"></script>
<script language="JavaScript" type="text/javascript" src="bower_components/jsrsasign/asn1hex-1.1.js"></script>
<script language="JavaScript" type="text/javascript" src="bower_components/jsrsasign/keyutil-1.0.js"></script>

添加必要的库后,将返回一个结果。然而,这并不是预期的结果。这是一个单独的问题,并将结束这一问题