Veo la función de codificación en el back-end de Java y necesito escribir la misma funcionalidad en NestJS (NodeJS). El resultado de estas transformaciones es algo así como C6EB48123226CDBB3A5048FE6A92CA06, lo veo en una tabla de base de datos.
Por lo tanto, traté de usar la biblioteca cripto-js, funciona con el cifrado DES, pero no pude obtener un resultado similar a C6EB48123226CDBB3A5048FE6A92CA06.
Como instancia (funciona bien):
var encrypted = CryptoJS.DES.encrypt("DataFromInput", "secretKey"); var decrypted = CryptoJS.DES.decrypt(encrypted, "secretKey");Pero mi pregunta sigue abierta. No tengo idea de lo que tengo que hacer para obtener una cadena similar a C6EB48123226CDBB3A5048FE6A92CA06, porque no entiendo qué hace el código Java a continuación y cómo puedo implementarlo en Javascript.
Necesito algunas instrucciones paso a paso como: Cifrar cadena -> Tomar propiedad X del resultado -> Transformarlo en matriz -> Obtener hash de matriz, etc.
public static String getEncrypted( String str, String key ) { try { KeySpec keySpec = new DESKeySpec( key.getBytes( Charset.forName( "UTF-8"))); SecretKeyFactory keyFactory = SecretKeyFactory.getInstance( "DES"); SecretKey desKey = keyFactory.generateSecret( keySpec); try ( ByteArrayOutputStream cipheredBaos = new ByteArrayOutputStream() ) { Cipher desCipher = Cipher.getInstance( "DES/ECB/PKCS5Padding"); desCipher.init( Cipher.ENCRYPT_MODE, desKey); CipherOutputStream cos = new CipherOutputStream( cipheredBaos, desCipher); cos.write( str.getBytes( "UTF-8")); cos.close( ); return DatatypeConverter.printHexBinary( cipheredBaos.toByteArray( )); } } catch ( Exception e) { System.out.println( e.getMessage() ); return ""; } }