我想加密一個字符串與修復長度的整數,我怎樣才能做到這一點在Java中。 tring實現AES算法,但out是一個特殊的字符,而不是一個數字。Java AES安全實現
String text = "Test TEST";
String key = "deadbeefbeefdead"; // 128 bit key
// Create key and cipher
Key aesKey = new SecretKeySpec(key.getBytes(), "AES");
Cipher cipher = Cipher.getInstance("AES");
// encrypt the text
cipher.init(Cipher.ENCRYPT_MODE, aesKey);
byte[] encrypted = cipher..doFinal(text.getBytes());
System.err.println(new String(encrypted));
// decrypt the text
cipher.init(Cipher.DECRYPT_MODE, aesKey);
String decrypted = new String(cipher.doFinal(encrypted));
System.err.println(decrypted
);
嗨Zaph,感謝您的回放,根據我的要求,我需要一個數字,所以我使用了AES加密並將其轉換爲十六進制,從十六進制到數字,但數字太大,如39位數字,直到156位數字。有沒有什麼辦法可以減少它,這樣可以減少我想要的數量..在此先感謝您的幫助將受到讚賞! – Patel
加密不會減少位數,因爲您需要使用zip等壓縮算法。如果輸入<= 64位,則可以在不基於塊的CRT模式下進行加密,但CTR模式不易安全。 – zaph
對要加密爲<的文本是否有限制? 64位? – zaph