Общие алгоритмы шифрования в основном разделены на эти категории: 1: Алгоритм линейного хэш, 2: Алгоритм симметричного шифрования, 3. Алгоритм асимметричного шифрования (запись)
Алгоритм линейного хэш -хаш (алгоритм подписи): MD5, SHA1, HMAC
Например, MD5: Алгоритм 5-прежнего дивийта сообщений (алгоритм 5), используется для обеспечения полной и последовательной передачи информации.
Функции:
1. Сжатие: рассчитанная длина значения MD5 фиксируется для данных любой длины.
2. Легко рассчитать: легко рассчитать значение MD5 по исходным данным.
3. Сопротивление модификации: внесите какие -либо изменения в исходные данные, даже если модифицируется только 1 байт, полученные значения MD5 очень разные.
4. Сильное антиколлиению: известно, что исходные данные и его значение MD5 очень трудно найти данные с тем же значением MD5 (то есть кованые данные).
Функция MD5 состоит в том, чтобы позволить информации о большой способности быть «сжатой» в конфиденциальный формат перед подписанием закрытого ключа с помощью программного обеспечения для цифровой подписи (то есть преобразование байтовой строки любой длины в шестнадцатеричную строку определенной длины)
Симметричный алгоритм шифрования: AES, DES, 3DES
Например, AES: (Стандарт расширенного шифрования) также известен как метод шифрования Rijndael в криптографии, который является стандартом шифрования блока, принятом федеральным правительством США. Этот стандарт используется для замены исходного DES, и был проанализирован несколькими сторонами и широко используется во всем мире.
Алгоритм асимметричного шифрования: RSA, DSA, ECC
Например, RSA: RSA Public Key Cryptography System. Так называемая криптографическая система открытого ключа заключается в использовании различных клавиш шифрования и клавиш дешифрования. Это криптографическая система, которая «получение клавиш дешифрования из известных клавиш шифрования является вычислительно невозможным».
В системе криптографии открытого ключа ключ для шифрования (то есть открытый ключ) PK является публичной информацией, в то время как ключ расширения (то есть Secret Key) SK должен сохраняться конфиденциально. Алгоритм шифрования E и алгоритм расшифровки D также являются общедоступными. Хотя SK Key Decryption определяется pk Public Key, SK не может быть рассчитан на основе PK.
Крипто -модуль в Nodejs
Node использует библиотеку OpenSSL для реализации своей технологии шифрования, потому что OpenSSL уже является широко используемым алгоритмом шифрования. Он включает в себя алгоритмы, такие как MD5 или SHA-1, которые вы можете использовать в своем приложении.
В следующем коде используется метод реализации алгоритма Crypto Module DES
/*** * @author chenjianxiang * @date 2016-07-07 */var crypto = require ('crypto'); var key = '12345670'; exports.des = {algorithm: {ecb: 'des-ecb', cbc: 'des-cbc'}, incrypt: function, iv-key key) {vartectemp, iv) {vartext) {vartext) {vartext) {vartext) {vartext) {varText) {varText). var IV = новый буфер (IV? IV: 0); var cipher = crypto.createcipheriv (this.algorithm.ecb, key, iv); cipher.setautopadding (true) // по умолчанию true var cipher = cipher.update (plaintext, 'utf8', 'base64'); cipher += cipher.final ('base64'); вернуть шифр; }, decrypt: function (encrypt_text, iv) {var key = new Buffer (key); var IV = новый буфер (IV? IV: 0); var decipher = crypto.createdecipheriv (this.algorithm.ecb, key, iv); decipher.setautopadding (true); var txt = decipher.update (encrypt_text, 'base64', 'utf8'); txt += decipher.final ('utf8'); вернуть txt; }};Использование метода шифрования и дешифрования DES
// incrypt var cryptutil = require ("./ utils/crypt"); var str = "/upload/image/201602120012.jpg"; var incrypt_text = cryptutil.des.encrypt (str, 0); var decrypt_text = cryptutil.des.decrypt (encrypt_text, 0); console.log (encrypt_text); console.log (decrypt_text);Результат вывода:
I+QWOSXQVBQ18KVMX3AINOMHBS3NT+V64S
/upload/image/201602120012.jpg
Простая реализация Node.js des Encryption выше - это все контент, которым я делюсь с вами. Я надеюсь, что вы можете дать вам ссылку, и я надеюсь, что вы сможете поддержать Wulin.com больше.