Introdução ao 3DES:
3DES (ou Triple DES) é o termo geral para a senha de bloco do algoritmo de criptografia de dados triplos. É equivalente a aplicar um algoritmo de criptografia DES três vezes em cada bloco de dados. Devido ao poder de computação aprimorado dos computadores, o comprimento principal da senha original do DES tornou-se facilmente forçado a bruto; O 3DES foi projetado para fornecer um método relativamente simples, a saber, para evitar ataques semelhantes, aumentando o comprimento da chave do DES, em vez de projetar um novo algoritmo de cifra de bloco.
Hoje eu preciso implementar o DES no lado do cliente. Eu rapidamente encontrei http://www.tero.co.uk/des/code.php
Exemplo de aplicação
var key = "Esta é uma chave de 24 bytes !!"; var message = "Esta é uma mensagem de teste"; var cipherText = DES (chave, mensagem, 1, 0); document.Writeln ("DES test:" + stringtohex (ciphertext));Claro, verificou -se que não era isso que precisávamos. Nosso servidor usa Des-Aede, que parece ser chamado de Triple des em Java
Há um pequeno poço aqui que suporta 3DEs
// Quantas iterações (1 para DES, 3 para Triple des) varrações variadas = key.length> 8? 3: 1; // alterado por Paul 16/6/2007 para usar o Triple Des para 9+ Keys
Mas há um pequeno erro ao usar a chave
Se for 64 bits, é a solução positiva do DES, mas o 3DES pode ser de 128 bits ou 192 bits.
O processo de 3des é en (k3, de (k2, en (k1, p)))))
Quando K1 = K3, uma chave simplificada de 128 bits pode ser usada.
key = "K1K1K1K1K2K2K2K2K2" De fato, deve ser equivalente a K1K1K1K1K2K2K2K2K1K1K1K1. O autor não o implementou
Outro é o modo de preenchimento. Em suma, quando a criptografia de bloco, como o espaço insuficiente deve ser preenchido? Abaixo está o código -fonte
if (preenchimento == 2) mensagem += ""; // PACH A MENSAGEM COM SPACESELSE IF (PADDING == 1) {temp = 8- (Len%8); mensagem += string.FromCharCode (temp, temp, temp, temp, temp, temp, temp, temp); if (temp == 8) len += 8;} // pkcs7 Paddingelse if (! Padding) mensagem += "/0/0/0/0/0/0/0/0/0/0/0/0"; // Ponha a mensagem com bytes nulosAgora PKCS5/7 é geralmente usado
Preste atenção a esses dois pontos ao ligar, de fato, o DES-AED é implementado.
Exemplo
var key = "B964B7C58E99B59" + "B964B7C5"; var message = "Esta é uma mensagem de teste"; var cipherText = des (chave, mensagem, 1, 0,0,1); document.Writeln ("<br/> des3 teste:" + stringtohex (ciphertxt);O acima é o 3DES em JavaScript apresentado a você pelo editor. Espero que seja útil para você. Se você tiver alguma dúvida, deixe -me uma mensagem e o editor responderá a você a tempo. Muito obrigado pelo seu apoio ao site wulin.com!