JavaScript 中的 RSA 签名
RSA signature in JavaScript
我是加密新手。我想在将数据发送到服务器之前使用 JavaScript RSA 库对一段数据进行签名。
我正在尝试使用 JavaScript 库 jsrsasign: http://kjur.github.io/jsrsasign/来签署数据。
我生成了一个模数 (n)、公共指数 (e) 和一个私有指数 (d),并尝试让它们对数据进行签名。
var privateExponent = "4B48F60D02460811DABF74D79770E8DD72B5EEFF1324F651D4543D98B8C9F0F7ED3E245C49D967A30B279564AFF4FE53E2D92704FB4D6E923732F4AF8CFDA2114A49B6E425FD44AEACB80F00125AF6468F1A666EDDD5CFD6BFAB27950EF3DFB78671734BF1BB782CBB654A7FBB9BFB897E37F0324710360E1515B1FF0EE7FAF1";
var modulus = "00A68A945DE1175E4EBA23C53B8A1237CE9AA292020ECB373D90837FBD8DB8164687B7913543EA838E2B669BD1626FA9872397C5398485D951CFC229E102A78654B61E9EB2BC3B36BD2624ACF5C8B82ABD33A5AF4144C55034A3E5BF8282F3D5CB0CF9F550844E68A58DADC3BCC7CF726F227F8EC5FAC2494F1FBDEEF39212B5FF";
var publicExponent = "10001";
我一直在尝试使用它们来签署一段数据,如下所示:
var signature = "Hello world";
var rsa = new RSAKey();
rsa.setPrivate(modulus, publicExponent, privateExponent);
var result = rsa.signString(signature, 'sha256');
rsa.setPublic(modulus, publicExponent);
console.log(result);
console.log(rsa.verifyString(result, 'sha256'));
但是,验证函数不断返回 false。我不知道我做错了什么。
函数 setPublic 和 setPrivate 是 rsa2 的一部分.js
verifyString
调用中存在错误。该接口说:
verifyString(sMsg, hSig)
verifies a sigature for a message string with RSA public key.
Parameters:
{String} sMsg
message string to be verified.
{String} hSig
hexadecimal string of siganture.
non-hexadecimal charactors including new lines will be ignored.
Returns:
returns 1 if valid, otherwise 0
这意味着您需要调用的代码是:
rsa.verifyString(signature, result)
但是,变量名称令人困惑。result
var 实际上是签名。
signString
函数使用 PCSK#1 v1.5 填充,因此您无需将摘要算法传递给验证函数。此信息已存在于签名中。
相关文章:
- Wacom stu-430签名捕获速度太慢
- java,javascript签名的小程序(文件选择,ftp上传)安全性/套接字异常
- 为什么使用AWS Signature v4对S3的REST调用并没有真正使用签名过程
- 为什么可以't我跳过函数签名中的参数分配
- gcloud节点-我如何确保通过签名URL上传到谷歌云存储的文件是公开可读的
- 匹配在RubyonRails和JavaScript中加密的签名标头
- 蒸发js和s3的php签名url
- 如何在不支持HTML字符的邮件正文中发送%签名
- Yelp API,OAuth;无效签名.需要签名基字符串
- Node js:如何获取文件签名标头而不是 mime 类型
- 来自模数和JavaScript中的私有指数的RSA私钥
- 如何从服务器端控制器返回或调用已签名的小程序的方法
- 如何获取方法签名
- Javascript RSA-OAEP不适用于任意输入长度
- PrivilegedActionException 尝试从 JavaScript 调用已签名的 Java 小程序
- 为什么这个js代码的RSA加密结果与java的RSA标准代码不同
- JavaScript 中的 RSA 签名
- RSA 签名验证,无证书 JavaScript
- 节点rsa SHA1消息签名长度
- 使用JavaScript生成RSA-SHA1签名