pidCrypt это open source библиотека криптографических алгоритмов. Поддерживает RSA и AES шифрование/дешифрование, и расчёт MD5 и SHA хэшей.
Base64
Пример использования pidCrypt для работы с Base64 (демо)
var myString = "This is some text"; //encoding: var b64encoded = pidCryptUtil.encodeBase64(myString); //decoding: var b64decoded = pidCryptUtil.decodeBase64(b64encoded);
AES
Пример симметричного шифрования AES (демо)
var aes = new pidCrypt.AES.CBC(); // Шифрует текст var crypted = aes.encryptText("Шифруем текст", "password", {nBits: 256}); // Расшифрует текст var decrypted = aes.decryptText(pidCryptUtil.stripLineFeeds(crypted),"password",{nBits:256});
RSA
К сожалению в библиотеке отсутствует функция создания открытого и закрытого ключей. Поэтому они должны генерироваться какими то другими средствами.
Шифрование (демо)
//new instance var rsa = new pidCrypt.RSA(); //get the modulus and exponent from certificate (ASN1 parsing) //pem(Array of Bytes) var asn = pidCrypt.ASN1.decode(pem); var tree = asn.toHexTree(); //setting the public key for encryption with retrieved ASN.1 tree rsa.setPublicKeyFromASN(tree); //encrypt the plaintext and returns the encrypted text var crypted = rsa.encrypt();
Декодирование
//new instance var rsa = new pidCrypt.RSA(); //get the parameters from certificate (ASN1 parsing) //pem(Array of Bytes) var asn = pidCrypt.ASN1.decode(pem); var tree = asn.toHexTree(); //setting the private key for decryption with retrieved ASN.1 tree rsa.setPrivateKeyFromASN(tree); //decrypt the crypted text and returns the plaintext var plain = rsa.decrypt();
У меня примеры почему то не работали с той версией библиотеки которая по ссылке «Current version» и я скачал все скрипты непосредственно с тех мест откуда они подключались в примерах
Примечание
Информацию про шифрование на JavaScript я искал довольно давно когда думал про создание чата с оконечным шифрованием или веб-сервиса заметок с шифрованием текста заметок на стороне клиента. Собственно плагин чата для личной переписки пользователей я сделал и теперь думаю нужна ли в нём функция шифрования сообщений.
Только зарегистрированные пользователи могут участвовать в опросе. Войдите, пожалуйста.
ссылка на оригинал статьи http://habrahabr.ru/post/272507/
Добавить комментарий