Los algoritmos de cifrado comunes se dividen básicamente en estas categorías: 1: Algoritmo de hash lineal, 2: Algoritmo de cifrado simétrico, 3. Algoritmo de cifrado asimétrico (Registro)
Algoritmo de hash lineal (algoritmo de firma): MD5, Sha1, HMAC
Por ejemplo, MD5: Algoritmo 5 de mensajes 5 (Algoritmo de información de información 5), se utiliza para garantizar una transmisión de información completa y consistente.
Características:
1. Compresibilidad: la longitud del valor MD5 calculada se fija para los datos de cualquier longitud.
2. Fácil de calcular: es fácil calcular el valor MD5 a partir de los datos originales.
3. Resistencia a la modificación: realice cualquier cambio en los datos originales, incluso si solo se modifica 1 byte, los valores de MD5 resultantes son muy diferentes.
4. Anticolisión fuerte: se sabe que los datos originales y su valor MD5 son muy difíciles de encontrar un datos con el mismo valor MD5 (es decir, datos forjados).
La función de MD5 es permitir que la información de gran capacidad se "comprime" en un formato confidencial antes de firmar una clave privada con software de firma digital (es decir, convertir una cadena de bytes de cualquier longitud en una cadena hexadecimal de una cierta longitud)
Algoritmo de cifrado simétrico: AES, DES, 3DES
Por ejemplo, AES: (estándar de cifrado avanzado) también se conoce como método de cifrado de Rijndael en criptografía, que es un estándar de cifrado de bloque adoptado por el gobierno federal de los Estados Unidos. Este estándar se utiliza para reemplazar el DES original, y ha sido analizado por múltiples partes y se usa ampliamente en todo el mundo.
Algoritmo de cifrado asimétrico: RSA, DSA, ECC
Por ejemplo, RSA: sistema de criptografía de clave pública de RSA. El llamado sistema de criptografía de clave pública es usar diferentes claves de cifrado y claves de descifrado. Es un sistema de criptografía que "derivar claves de descifrado de claves de cifrado conocidas es computacionalmente inviable".
En el sistema de criptografía de la clave pública, la clave de cifrado (es decir, la clave pública) PK es información pública, mientras que la clave de descifrado (es decir, la clave secreta) SK debe mantenerse confidencial. El algoritmo de cifrado y el algoritmo de descifrado también son públicos. Aunque la clave de descifrado SK está determinada por la clave pública PK, SK no puede calcularse en función de la PK.
Módulo criptográfico en NodeJS
Node utiliza la biblioteca OpenSSL para implementar su tecnología de cifrado, porque OpenSSL ya es un algoritmo de cifrado ampliamente utilizado. Incluye algoritmos como MD5 o SHA-1 que puede usar en su aplicación.
El siguiente código utiliza el método de implementación del algoritmo del módulo cripto
/*** * @author Chenjianxiang * @Date 2016-07-07 */var crypto = request ('crypto'); var key = '12345670'; exports.des = {algorithm: {ecb: 'des-ECB', cbc: 'des-cbc'}, encrypt: function (plraintext, iv) {neo kinki = {neo key = {new key = {new Key = {New Key = {New key); var IV = nuevo búfer (IV? IV: 0); var cipher = crypto.createCipheriv (this.algorithm.ecb, clave, iv); cipher.setAutopadding (true) // predeterminado verdadero var cipher = cipher.update (Entraxtext, 'utf8', 'base64'); cifrado += cifrado.final ('base64'); devolver cifrado; }, Decrypt: function (ciRypt_text, iv) {var key = new Buffer (clave); var IV = nuevo búfer (IV? IV: 0); var decipher = crypto.createDecipheriv (this.algorithm.ecb, clave, iv); decipher.setAutopadding (verdadero); var txt = decipher.update (encrypt_text, 'base64', 'utf8'); txt += decipher.final ('utf8'); devolver txt; }};Uso del método de cifrado y descifrado de DES
// CiCrypt var cryptutil = request ("./ utils/crypt"); var str = "/upload/image/201602120012.jpg";var ciCrypt_text = cryptoutil.des.encrypt (str, 0); var descrypt_text = cryptutil.des.decrypt (cifrypt_text, 0); console.log (cifrypt_text); console.log (descrypt_text);Resultado de salida:
I+qwosxqvbq18kvmx3ainomhbs3nt+v64s
/upload/image/201602120012.jpg
La simple implementación de Node.js des cifrado anterior es todo el contenido que comparto con usted. Espero que pueda darle una referencia y espero que pueda apoyar más a Wulin.com.