Javascript 如何在python或java中复制JCryption1.1.js加密方法
我需要在不使用浏览器的情况下对服务器进行身份验证,相反,我想创建一个python脚本来完成这项工作。此服务器使用JCryption 1.1.js,该服务器假定使用明文RSA加密(RSA/ECB/null padding)Javascript 如何在python或java中复制JCryption1.1.js加密方法,javascript,python,encryption,Javascript,Python,Encryption,我需要在不使用浏览器的情况下对服务器进行身份验证,相反,我想创建一个python脚本来完成这项工作。此服务器使用JCryption 1.1.js,该服务器假定使用明文RSA加密(RSA/ECB/null padding) $.jCryption.encrypt=函数(字符串、密钥对、回调){ var charSum=0; 对于(变量i=0;i>4)+标记字符(charSum&0x0F); var taggedString=十六进制+字符串; var encrypt=[]; var j=0; wh
$.jCryption.encrypt=函数(字符串、密钥对、回调){
var charSum=0;
对于(变量i=0;i>4)+标记字符(charSum&0x0F);
var taggedString=十六进制+字符串;
var encrypt=[];
var j=0;
while(j$.jCryption.encrypt = function (string, keyPair, callback) {
var charSum = 0;
for (var i = 0; i < string.length; i++) {
charSum += string.charCodeAt(i);
}
var tag = '0123456789abcdef';
var hex = '';
hex += tag.charAt((charSum & 0xF0) >> 4) + tag.charAt(charSum & 0x0F);
var taggedString = hex + string;
var encrypt = [];
var j = 0;
while (j < taggedString.length) {
encrypt[j] = taggedString.charCodeAt(j);
j++;
}
while (encrypt.length % keyPair.chunkSize !== 0) {
encrypt[j++] = 0;
}
function encryption(encryptObject) {
var charCounter = 0;
var j, block;
var encrypted = "";
function encryptChar() {
block = new BigInt();
j = 0;
for (var k = charCounter; k < charCounter + keyPair.chunkSize; ++j) {
block.digits[j] = encryptObject[k++];
block.digits[j] += encryptObject[k++] << 8;
}
var crypt = keyPair.barrett.powMod(block, keyPair.e);
var text = keyPair.radix == 16 ? biToHex(crypt) : biToString(crypt, keyPair.radix);
encrypted += text + " ";
charCounter += keyPair.chunkSize;
if (charCounter < encryptObject.length) {
setTimeout(encryptChar, 1)
} else {
var encryptedString = encrypted.substring(0, encrypted.length - 1);
if ($.isFunction(callback)) {
callback(encryptedString);
} else {
return encryptedString;
}
}
}
setTimeout(encryptChar, 1);
}
encryption(encrypt);
};