Introducción a 3DES:
3DES (o triple des) es el término general para la contraseña de bloque del algoritmo de cifrado de datos triples. Es equivalente a aplicar un algoritmo de cifrado DES tres veces a cada bloque de datos. Debido a la potencia informática mejorada de las computadoras, la longitud de la clave de la contraseña de DES original se ha vuelto fácilmente forzada; 3DES está diseñado para proporcionar un método relativamente simple, a saber, para evitar ataques similares al aumentar la longitud clave del DES, en lugar de diseñar un algoritmo de cifrado de bloque nuevo.
Hoy necesito implementar DES en el lado del cliente. Rápidamente encontré http://www.tero.co.uk/des/code.php
Ejemplo de aplicación
var key = "Esta es una tecla de 24 bytes !!"; var Message = "Este es un mensaje de prueba"; var cifrado de texto = des (clave, mensaje, 1, 0); document.writeLn ("des test:" + stringtoHex (cifrado de texto));Por supuesto, se descubrió que esto no era lo que necesitábamos. Nuestro servidor usa Desdede, que parece llamarse Triple Des en Java
Aquí hay un pequeño pozo que admite 3Des
// ¿Cuántas iteraciones (1 para DES, 3 para triple des) var iterations = key.length> 8? 3: 1; // Cambiado por Paul 16/6/2007 para usar Triple DES para 9+ Byte Keys
Pero hay un pequeño error al usar la clave
Si son 64 bits, es la solución positiva de DE, pero 3DE puede ser de 128 bits o 192 bits.
El proceso de 3DES es EN (K3, DE (K2, EN (K1, P)))))
Cuando K1 = K3, se puede usar una clave simplificada de 128 bits.
Key = "K1K1K1K1K2K2K2K2K2" De hecho, debería ser equivalente a K1K1K1K1K2K2K2K2K1K1K1K1K11. El autor no lo implementó
Otro es el modo de relleno. En resumen, cuando el cifrado de bloque, ¿cómo se debe llenar el espacio insuficiente? A continuación se muestra el código fuente
if (padding == 2) mensaje += ""; // rellena el mensaje con Spacesselse if (padding == 1) {temp = 8- (len%8); mensaje += string.FromCharCode (temp, temp, temp, temp, temp, temp, temp, temp, temp); if (temp == 8) len += 8;} // pkcs7 paddingelse if (! padding) mensaje += "/0/0/0/0/0/0/0/0/0/0"; // rellena el mensaje con bytes nulosAhora se usa generalmente PKCS5/7
Preste atención a estos dos puntos al llamar, de hecho, se implementa Des-Odede.
Ejemplo
var key = "b964b7c58e99b59" + "b964b7c5"; var message = "Este es un mensaje de prueba"; var ciphertext = des (key, mensaje, 1, 0,0,1); document.writeLn ("<br/> des3 test:" + stringTox (ciphertext));Lo anterior es el 3DES en JavaScript presentado por el editor. Espero que te sea útil. Si tiene alguna pregunta, déjame un mensaje y el editor le responderá a tiempo. ¡Muchas gracias por su apoyo al sitio web de Wulin.com!