Java AES加密整个字符串

时间:2011-10-15 23:22:46

标签: java string encryption aes

如何使用AES加密整个字符串。我下面的代码只加密到第一个识别的空格:(。我该如何解决这个问题?谢谢

SecretKeySpec key = new SecretKeySpec(salt.getBytes(), "AES");
    Cipher cipher = Cipher.getInstance("AES/ECB/PKCS5Padding", "SunJCE");
    cipher.init(Cipher.ENCRYPT_MODE, key);
    String result = new String(cipher.doFinal(message.getBytes()));
    System.out.println("Encrypted:" + result);

修改 OMG我不相信这个,我怎么可能想念这个:(因为我的扫描仪是下一个而不是nextLine ...这让我整天都感到尴尬...我现在真的想到检查那个问题。问题解决了:)谢谢大家

1 个答案:

答案 0 :(得分:6)

除了尝试使用byte[]打印任意new String(byte[])之外,我的代码没有任何问题。试试这个尺寸:

public static byte[] encrypt(String message) throws Exception
{
    String salt = "1111111111111111";
    SecretKeySpec key = new SecretKeySpec(salt.getBytes(), "AES");
    Cipher cipher = Cipher.getInstance("AES/ECB/PKCS5Padding", "SunJCE");
    cipher.init(Cipher.ENCRYPT_MODE, key);
    return cipher.doFinal(message.getBytes());
}

public static void main (String[] args) throws Exception
{
    String hello = Arrays.toString(encrypt("hello"));
    System.out.println("hello:" + hello);
    String helloWorld = Arrays.toString(encrypt("hello world"));
    System.out.println("hello world:" + helloWorld);
}

打印哪些:

hello:[115, -73, -46, -121, 36, -106, -99, 100, 103, -24, -40, -38, 113, -8, 40, -57]
hello world:[5, 88, -31, 115, 4, 48, -75, 44, 83, 21, 105, -67, 78, -53, -13, -28]

我认为我们都同意这些是两个不同的字节数组。