У меня есть реализация Javascript DES / TripleDES. Это делает режимы CBC и ECB, и
для дополнения поддерживает PKCS7, пробелы или нули. Он интегрирован с RFC2898-совместимым PBKDF2, поэтому он может генерировать ключи шифрования и IV по паролям, если хотите. Вы также можете явно установить ключ шифрования и IV.
Его можно использовать при вызове напрямую из Javascript - из любого браузера, либо из Rhino, либо из WScript.exe, или, может быть, ближе к вашему случаю, классического ASP с использованием Javascript.
Я также упаковал его как COM-компонент, поэтому его можно вызывать из любой COM-совместимой среды, например, VBScript, работающей в классическом ASP, или Perl, или VBA и т. Д.
Это независимая реализация, полностью совместимая и взаимодействующая с .NET DESCryptoServiceProvider и TripleDESCryptoServiceProvider.
Получите это здесь:
http://cheeso.members.winisp.net/srcview.aspx?dir=DES
При вызове напрямую из Javascript, это выглядит так:
var pbkdf2 = new PBKDF2(password, salt, iterations);
var key = pbkdf2.deriveBytes(8); // use 24 for 3DES
var iv = pbkdf2.deriveBytes(8); // always 8 (==blocksize)
var des = new DES(key,iv);
var plaintext = "Hello. This is a test. of the emergency broadcasting system.";
var ciphertext = des.encrypt(plaintext);
При вызове COM-компонента из VBScript он выглядит следующим образом:
Dim des
set des = CreateObject("Ionic.Com.DES")
des.Password = "This is my password"
des.Mode = "CBC"
des.TripleDES = True
des.Rfc2898Iterations = 1000
Dim result
result = des.EncryptString(plainText)
Dim decrypted
decrypted = des.DecryptBytes(result)
WScript.echo "decrypted : " & decrypted
Шифрование выполняется довольно быстро, но генерация ключей - нет.
Редактировать:
вы также можете использовать Javascript DES в браузере.
Вот пример: http://jsbin.com/oguye3