import javax.crypto.Cipher;
import javax.crypto.spec.IvParameterSpec;
import javax.crypto.spec.SecretKeySpec;
class blowfish
{
public static void show(String name, byte[] info)
{
String strHex = "0123456789ABCDEF";
System.out.print(name + "(" + info.length + "):");
for (int i = 0; i < info.length; ++i)
{
int index = info[i];
if (index < 0)
index += 256;
System.out.print(" " + strHex.charAt(index >> 4) + strHex.charAt(index & 0xf));
}
System.out.println("");
}
public static void main(String[] args)
{
try
{
Cipher cipher = Cipher.getInstance("Blowfish/CFB/NoPadding");
SecretKeySpec secretKeySpec = new SecretKeySpec("1234567890ABCDEF".getBytes(), "Blowfish");
IvParameterSpec ivParameterSpec = new IvParameterSpec("12345678".getBytes());
cipher.init(Cipher.ENCRYPT_MODE, secretKeySpec, ivParameterSpec);
byte[] plain = "中华人民共和国".getBytes("UTF-8");
byte[] encrypted = cipher.doFinal(plain);
show("plain", plain);
show("encrypted result", encrypted);
cipher.init(Cipher.DECRYPT_MODE, secretKeySpec, ivParameterSpec);
show("decrypted result", cipher.doFinal(encrypted));
}
catch (Exception e)
{
System.out.println(e);
}
}
}
阅读(600) | 评论(0) | 转发(0) |