Ich versuche, eine Zeichenfolge in Java mit dem folgenden Code zu verschlüsseln und zu entschlüsseln: < /p> [code]public byte[] encrypt(String message) throws Exception { final MessageDigest md = MessageDigest.getInstance("md5"); final byte[] digestOfPassword = md.digest("MYKEY12345" .getBytes("utf-8")); final byte[] keyBytes = Arrays.copyOf(digestOfPassword, 24); for (int j = 0, k = 16; j < 8;) { keyBytes[k++] = keyBytes[j++]; }
final SecretKey key = new SecretKeySpec(keyBytes, "DESede"); // final IvParameterSpec iv = new IvParameterSpec(new byte[8]); final Cipher cipher = Cipher.getInstance("DESede/ECB/PKCS5Padding"); cipher.init(Cipher.ENCRYPT_MODE, key);
final byte[] plainTextBytes = message.getBytes("utf-8"); final byte[] cipherText = cipher.doFinal(plainTextBytes); // final String encodedCipherText = new sun.misc.BASE64Encoder() // .encode(cipherText);
public String decrypt(byte[] message) throws Exception { final MessageDigest md = MessageDigest.getInstance("md5"); final byte[] digestOfPassword = md.digest("MYKEY12345" .getBytes("utf-8")); final byte[] keyBytes = Arrays.copyOf(digestOfPassword, 24); for (int j = 0, k = 16; j < 8;) { keyBytes[k++] = keyBytes[j++]; }
final SecretKey key = new SecretKeySpec(keyBytes, "DESede"); // final IvParameterSpec iv = new IvParameterSpec(new byte[8]); final Cipher decipher = Cipher.getInstance("DESede/ECB/PKCS5Padding"); decipher.init(Cipher.DECRYPT_MODE, key);
// final byte[] encData = new // sun.misc.BASE64Decoder().decodeBuffer(message); final byte[] plainText = decipher.doFinal(message);
return new String(plainText, "UTF-8"); } < /code> Verwendung: < /p> byte[] codedtext = new Common().encrypt("HELLOWORLD!"); // Function to get the Encrption < /code> Ausgabe: < /p> base64: Ya9zBTukyOmdOh5/5vCaGA== // encrypted string converted to base64 Encrypted : [B@d41c149 < /code> todecrypt: < /p> String decodedtext = new Common().decrypt(codedtext); // To decrypt String < /code> Ausgabe: < /p> Decrypted : HELLOWORLD! // from Encrypted string [/code] Wenn ich nun denselben Schlüssel und String verwende, um den Verschlüsselungsschlüssel online zu erhalten, erhalte ich verschiedene Werte.>
eine Legacy -App, die zu Debian 11 mit PHP 8.2 festgelegt wurde (PHP 5.6, die nicht mehr zur Verwendung verfügbar sind). Die ursprüngliche Anwendung verwendete die erste Version von PHPSeclib, aber...