已知一个网页RSA加密js脚本,如何引用它对一串数字加密?我不懂里面的函数,不知该怎么套用函数,求指教

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了已知一个网页RSA加密js脚本,如何引用它对一串数字加密?我不懂里面的函数,不知该怎么套用函数,求指教相关的知识,希望对你有一定的参考价值。

js代码如下:
(function($w)

if(typeof $w.RSAUtils === 'undefined')
var RSAUtils = $w.RSAUtils = ;

var biRadixBase = 2;
var biRadixBits = 16;
var bitsPerDigit = biRadixBits;
var biRadix = 1 << 16; // = 2^16 = 65536
var biHalfRadix = biRadix >>> 1;
var biRadixSquared = biRadix * biRadix;
var maxDigitVal = biRadix - 1;
var maxInteger = 9999999999999998;

var maxDigits;
var ZERO_ARRAY;
var bigZero, bigOne;

var BigInt = $w.BigInt = function(flag)
if (typeof flag == "boolean" && flag == true)
this.digits = null;
else
this.digits = ZERO_ARRAY.slice(0);

this.isNeg = false;
;

RSAUtils.setMaxDigits = function(value)
maxDigits = value;
ZERO_ARRAY = new Array(maxDigits);
for (var iza = 0; iza < ZERO_ARRAY.length; iza++) ZERO_ARRAY[iza] = 0;
bigZero = new BigInt();
bigOne = new BigInt();
bigOne.digits[0] = 1;
;
RSAUtils.setMaxDigits(20);

··················
··················
中间还有很多子函数,字数限制 只能省略,不知道影不影响

block = key.barrett.powMod(bi, key.d);
for (j = 0; j <= RSAUtils.biHighIndex(block); ++j)
result += String.fromCharCode(block.digits[j] & 255,
block.digits[j] >> 8);


// Remove trailing null, if any.
if (result.charCodeAt(result.length - 1) == 0)
result = result.substring(0, result.length - 1);

return result;
;
RSAUtils.setMaxDigits(130);
)(window);

这个不难:

var key = RSAUtils.getKeyPair(exponent, '', modulus);//modulus 是解密钥匙
var updPwd=RSAUtils.encryptedString(key, password);//password 你要加密的密码

然后只要保存updPwd到数据库就可以了。
参考技术A 其实过程都不用太去了解。你知道其中的几个函数就行了。。
知道几个参数: setMaxDigits ()这个里面的值
//生成rsa的key

function RSAKeyPair(encryptionExponent, decryptionExponent, modulus)
//加密 字串输出函数

function encryptedString(key, s)

----自己写一个简单的 函数,引用入密码就可以了

解决项目中的RSA加密解密算法的实际案例

目前项目中在2个地方用到了RSA加密算法

1.一个地方时登录的时候,前端js做了RSA加密,然后后端RSA解密

技术图片

 

2.H5移动端的url中存在RSA加密串

但是在时间压测中,主要的问题是H5请求的url中存在RSA加密串

登录的RSA逻辑:

技术图片

技术图片

在压测脚本 中 这个RSA登录密码加密是可以解决的,直接将所有的密码统一成RSA的加密串就可以

 

但是在H5端的url中存在这个RSA加密串,那么就需要解决这个问题

技术图片

 

技术图片

那么如果需要做性能压测,这个问题必须要解决,否则一些url请求是无法模拟的

技术图片

 

通过上述的方法,就可以完成fillder抓包中的请求参数s加密串的生成和通过s解析出token来 

如果java代码写完了,可以直接打成jar包文件直接放到Jmeter里调用

 

以上是关于已知一个网页RSA加密js脚本,如何引用它对一串数字加密?我不懂里面的函数,不知该怎么套用函数,求指教的主要内容,如果未能解决你的问题,请参考以下文章

RSA加密算法已知公钥对,求d

RSA加密算法已知公钥对,求d

php rsa加密 已有明文和公钥 只需加密

RSA已知明文和公钥能得到私钥加密的密文吗

js加密后能在网页中运行吗?怎么运行

node.js 怎么用crypto rsa加密密码