import javax.crypto.Cipher;
import javax.crypto.SecretKey;
import javax.crypto.spec.SecretKeySpec;
public class CipherTest {
public static void main(String[] args) {
try {
byte[] keydata = { (byte) 0x00, (byte) 0x01, (byte) 0x02,
(byte) 0x03, (byte) 0x04, (byte) 0x05, (byte) 0x06,
(byte) 0x07, (byte) 0x08, (byte) 0x09, (byte) 0x0a,
(byte) 0x0b, (byte) 0x0c, (byte) 0x0d, (byte) 0x0e,
(byte) 0x0f, (byte) 0x10, (byte) 0x11, (byte) 0x12,
(byte) 0x13, (byte) 0x14, (byte) 0x15, (byte) 0x16,
(byte) 0x17, };
String algorithm = "DESede";
String clearTextString = "I wanna be with you.";
String encoding = "US-ASCII";
// javax.crypto.spec.DESedeKeySpec
SecretKey key = new SecretKeySpec(keydata, algorithm);
Cipher cipher = Cipher.getInstance(algorithm);
byte[] clearText = clearTextString.getBytes(encoding);
cipher.init(Cipher.ENCRYPT_MODE, key);
byte[] encryptedText = cipher.doFinal(clearText);
cipher.init(Cipher.DECRYPT_MODE, key);
byte[] decryptedText = cipher.doFinal(encryptedText);
System.out.println("********************************************");
System.out.println(new String(clearText, encoding));
System.out.println(bytesToString(clearText));
System.out.println("********************************************");
System.out.println(new String(encryptedText, encoding));
System.out.println(bytesToString(encryptedText));
System.out.println("********************************************");
System.out.println(new String(decryptedText, encoding));
System.out.println(bytesToString(decryptedText));
System.out.println("********************************************");
} catch (Exception e) {
e.printStackTrace();
}
}
private static String bytesToString(byte[] b) {
if (b == null)
return null;
StringBuffer sb = null;
sb = new StringBuffer();
for (int i = 0; i < b.length; i++) {
sb.append(Integer.toString((int) ((b[i] >> 4) & 0x0F), 16));
sb.append(Integer.toString((int) (b[i] & 0x0F), 16));
}
return sb.toString().toUpperCase();
}
}
3des加密算法的Java实现
最新推荐文章于 2024-03-25 20:00:40 发布