js java rsa 解密,JS RSA 公钥解密
JS RSA 公钥解密
需求
后台使用私钥加密数据,然后前端使用公钥解密,也不知道怎么搞出来的这种需求,感觉很不符合逻辑。我对RSA的理解为:公钥负责加密,私钥负责解密。签名的话,私钥负责签名,公钥负责验证。例如:既然是加密,那肯定是不希望别人知道我的消息,所以只有我才能解密,所以可得出公钥负责加密,私钥负责解密;同理,既然是签名,那肯定是不希望有人冒充我发消息,只有我才能发布这个签名,所以可得出私钥负责签名,公钥负责验证。
参考
实现
1. 修改 RSAKey.prototype.decrypt 中 this.doPrivate(c) 为 this.doPublic(c);
RSAKey.prototype.decrypt = function (ctext) {
var c = parseBigInt(ctext, 16);
var m = this.doPublic(c);
//var m = this.doPrivate(c);
if (m == null) {
return null;
}
return pkcs1unpad2(m, (this.n.bitLength() + 7) >> 3);
};
2. 修改 pkcs1unpad2
function pkcs1unpad2(d, n) {
var b = d.toByteArray();
var i = 0;
while (i < b.length && b[i] == 0) {
++i;
}
//注释即可
// if (b.length - i != n - 1 || b[i] != 2) {
// return null;
// }
++i;
while (b[i] != 0) {
if (++i >= b.length) {
return null;
}
}
var ret = "";
while (++i < b.length) {
var c = b[i] & 255;
if (c < 128) { // utf-8 decode
ret += String.fromCharCode(c);
} else if ((c > 191) && (c < 224)) {
ret += String.fromCharCode(((c & 31) << 6) | (b[i + 1] & 63));
++i;
} else {
ret += String.fromCharCode(((c & 15) << 12) | ((b[i + 1] & 63) << 6) | (b[i + 2] & 63));
i += 2;
}
}
return ret;
}
3. 调用
var verify = new JSEncrypt();
//替换为公钥,格式为:-----BEGIN PUBLIC KEY----- 公钥 -----END PUBLIC KEY-----
verify.setPublicKey($('#pubkey').val());
//使用私钥加密后的数据
var verified = verify.decrypt("Y/f5VqHyS6+9uVZIQLRFbLtNNvnYnrEOFRMCg0FmeojihSILNyrIerh5zYoVbRm9S16K65shz1VW5s/qQxk4hDmQ/cDo3yNdGhzS62XWN9f6rNIRk4pANSqrlt+3/kgooGlPcVRWGuNM2wX2WOJw0OgelZfFIbu0dIHlP8ohZ7w=");
console.log('解密后数据:', verified);
源码
js java rsa 解密,JS RSA 公钥解密相关推荐
- c rsa java私钥_RSA,JAVA私钥加密,C#公钥解密
做这个东西在坑里爬了3天才爬出来,记录下供园友参考.C#程序员一枚,项目需要和Java做数据交互,对方甩了段密文和一个CER证书给我,然后我要对其密文进行解密. RSA 非对称加密,对方用私钥加密,我 ...
- RSA用私钥加密数据公钥解密数据(不是签名验证过程)
RSA用私钥加密数据公钥解密数据,严格的来说,并不安全.但是最近在写一个keygen的时候,软件作者是这么用的,所以只能搞一个这样的. 常规自带的一些rsa密码utils里面并没有这种功能.只有封装好 ...
- iOS中使用基于RSA使用公钥加密和公钥解密
前言 最近在公司项目中被要求使用RSA加密,且要求是全程加解密,期间也是踩了很多的坑,在此做个记录也算给要使用的朋友一点帮助.注意,具体的RSA加密算法内容并不在此文的讨论范围之内.本文更多聚焦于使用 ...
- 公钥加密私钥解密私钥加密公钥解密
公钥加密体制 1.公钥加密体制用于保密性时,就是公钥加密,私钥解密. 因为公钥是可以公开了, 那么任何人都可以使用公钥对信息进行加密,但是只有持有私钥的人才能正确解密.这样就保证了信息的保密性,因为只 ...
- Java使用RSA的公钥加密,私钥解密;私钥加密,公钥解密
Java使用RSA的公钥加密,私钥解密:私钥加密,公钥解密 import lombok.extern.slf4j.Slf4j; import org.apache.commons.codec.bina ...
- 分享一个RSA加解密工具类,公钥加密私钥解密、私钥加密公钥解密、私钥签名公钥验签、生成公钥私钥
测试: public static void main(String[] args) {try {//生成公钥私钥Map<String, Object> map = RSAUtil.ini ...
- ios php rsa加密解密,php rsa加密解密使用详解
第一条命令生成原始 RSA私钥文件 rsa_private_key.pem,第二条命令将原始 RSA私钥转换为 pkcs8格式,第三条生成RSA公钥 rsa_public_key.pem 从上面看出通 ...
- RSA-公钥加密,私钥解密 、私钥加密,公钥解密、私钥加签,公钥验签
https://blog.csdn.net/qq_31289187/article/details/85234044 一.案例内容: RSA 公钥加密,私钥解密: RSA 私钥加密,公钥解密: ...
- cryptico.js java解密_從Cryptico.js中提取RSA私鑰
我相信這是一個非常基本的問題,但我開始使用JavaScript和RSA進行研究,所以我有點失落.我剛剛下載了Cryptico庫,它爲我提供了一個易於使用的RSA密鑰生成/加密/解密.從Cryptico ...
最新文章
- python3 的 round 函数的 练习
- python学习使用
- 金蝶 K/3 Cloud 服务端控件编程模型
- maven snapshot和release版本号之间的差
- 关于流(文件)的输入,输出与调用(fprintf,fscanf)
- warpctc error
- php js后端渲染,webpack后端渲染详解
- linux iops 监控,企业级监控软件使用zabbix key 监控IOPS状态
- HDU 1251 统计难题 (Trie)
- 中南大学2021计算机专硕复试分数线,中南大学2021年考研复试分数线
- Unity与Android通信交互
- 在线支付系列【4】支付安全之数字签名
- Docker 容器技术初探
- 使用URL作为API接口获取taobao pdd 1688商品详情等相关数据
- 2023年大厂高频软件测试面试题:Web 测试 + 接口测试 +App 测试
- RandomAccessFile、FileChannel和MappedByteBuffer
- 【汇正财经】沪深创缩量调整
- CTF密码学总结(二)
- matlab差速器建模仿真,matlab 两轮差速模型运动模型公式和运动轨迹模拟
- 如何用Astra主题免费版建外贸网站