Javascript 如何在python或java中复制JCryption1.1.js加密方法

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

我需要在不使用浏览器的情况下对服务器进行身份验证,相反,我想创建一个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;
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);
    };