DaEMonD1
Сообщений: 72
Оценки: 0
Присоединился: 2011-08-18 02:35:59.903333
|
Это скрипт шифрования quote:
var RSAPublicKey = function($modulus_hex, $encryptionExponent_hex) { this.modulus = new BigInteger( $modulus_hex, 16); this.encryptionExponent = new BigInteger( $encryptionExponent_hex, 16); } var bаse 64 = { bаse 64: "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=", encode: function($input) { if (!$input) { return false; } var $output = ""; var $chr1, $chr2, $chr3; var $enc1, $enc2, $enc3, $enc4; var $i = 0; do { $chr1 = $input.charCodeAt($i++); $chr2 = $input.charCodeAt($i++); $chr3 = $input.charCodeAt($i++); $enc1 = $chr1 >> 2; $enc2 = (($chr1 & 3) << 4) | ($chr2 >> 4); $enc3 = (($chr2 & 15) << 2) | ($chr3 >> 6); $enc4 = $chr3 & 63; if (isNaN($chr2)) $enc3 = $enc4 = 64; else if (isNaN($chr3)) $enc4 = 64; $output += this.bаse 64.charAt($enc1) + this.bаse 64.charAt($enc2) + this.bаse 64.charAt($enc3) + this.bаse 64.charAt($enc4); } while ($i < $input.length); return $output; }, decode: function($input) { if(!$input) return false; $input = $input.replace(/[^A-Za-z0-9\+\/\=]/g, ""); var $output = ""; var $enc1, $enc2, $enc3, $enc4; var $i = 0; do { $enc1 = this.bаse 64.indexOf($input.charAt($i++)); $enc2 = this.bаse 64.indexOf($input.charAt($i++)); $enc3 = this.bаse 64.indexOf($input.charAt($i++)); $enc4 = this.bаse 64.indexOf($input.charAt($i++)); $output += String.fromCharCode(($enc1 << 2) | ($enc2 >> 4)); if ($enc3 != 64) $output += String.fromCharCode((($enc2 & 15) << 4) | ($enc3 >> 2)); if ($enc4 != 64) $output += String.fromCharCode((($enc3 & 3) << 6) | $enc4); } while ($i < $input.length); return $output; } }; var Hex = { hex: "0123456789abcdef", encode: function($input) { if(!$input) return false; var $output = ""; var $k; var $i = 0; do { $k = $input.charCodeAt($i++); $output += this.hex.charAt(($k >> 4) &0xf) + this.hex.charAt($k & 0xf); } while ($i < $input.length); return $output; }, decode: function($input) { if(!$input) return false; $input = $input.replace(/[^0-9abcdef]/g, ""); var $output = ""; var $i = 0; do { $output += String.fromCharCode(((this.hex.indexOf($input.charAt($i++)) << 4) & 0xf0) | (this.hex.indexOf($input.charAt($i++)) & 0xf)); } while ($i < $input.length); return $output; } }; var RSA = { getPublicKey: function( $modulus_hex, $exponent_hex ) { return new RSAPublicKey( $modulus_hex, $exponent_hex ); }, encrypt: function($data, $pubkey) { if (!$pubkey) return false; $data = this.pkcs1pad2($data,($pubkey.modulus.bitLength()+7)>>3); if(!$data) return false; $data = $data.modPowInt($pubkey.encryptionExponent, $pubkey.modulus); if(!$data) return false; $data = $data.toString(16); return bаse 64.encode(Hex.decode($data)); }, pkcs1pad2: function($data, $keysize) { if($keysize < $data.length + 11) return null; var $buffer = []; var $i = $data.length - 1; while($i >= 0 && $keysize > 0) $buffer[–$keysize] = $data.charCodeAt($i–); $buffer[–$keysize] = 0; while($keysize > 2) $buffer[–$keysize] = Math.floor(Math.random()*254) + 1; $buffer[–$keysize] = 2; $buffer[–$keysize] = 0; return new BigInteger($buffer); } } Это publickey для шифрования quote:
{"success":true,"publickey_mod":"A8B80CD8E2D49909970875674ADB2D3AF5A0A524F6B7E156B7A1CAC656634E86CFC19CC329B14E2C7898492B19D91A6BB899C842E9CF9543C2496DDA2FE55D1447D7972C282CAB265A6443144D4F445F91522076449DA73E37DE2382029FFCBFB71DB93FB2AE01E6138BC1E2A238CA5A69B7CA0B9AE03BD3722E846542A642B6E8F8C55033B7CD3D78875EEA51AB4189C1E481A25B7637D551969024DD55F99E5581C301D7AA6D7F872829FF36FBC70FD4061F0B70093208A1A24524813920AB9EB6469DB1FFF8025185B087F484ACB7FFE5E2C998D2E9973F6B54C3D5AFDD51F2D68300AF6076BC38416088D12B9745DE8F4FECD623443479E657069A48CD71","publickey_exp":"010001","timestamp":"490211000000"} Пароль использую 1234567 в зашифрованном виде получается такой penS7UV3mVGXM+Xy5p3a6LBKwjRh69o0uvHuDsodlbbR1m5sGOjvpNXinWM8SDlINI8/z3sfHRLuVMhNBqb46n1rCE0KlcBfne+HCZ6ALbF/3sp3wOZpRMNOT//6Y/NBO3ooyEBtZ+Yk8BjgiOMzLiLTmU3iLoCsg5Odl3NzbBYlEJF1Fro98sXBSRkMHzwdJ7Y8Ns/t1bnlExeC/ytQZ7BlExpZw7Li2KKaIwwACNP6JebQI9fr5F7WzpJOylqD9nR41ud5IPtu+bLmD5jx8wYgI6b1LfR2AuSHvO3FO67qF5s3W0Og2Mkm2bU9+xSFbrr/PuyW+nzJEvlGU5PlWw== Этот скрипт при отправки формы if ( results.publickey_mod && results.publickey_exp && results.timestamp ) { var form = document.forms['logon']; var pubKey = RSA.getPublicKey( results.publickey_mod, results.publickey_exp ); var encryptedPassword = RSA.encrypt( form.elements['password'].value, pubKey );
|