几种加密算法的测试,包括对称加密和非对称加密

对称加密算法

  Blowfish 加密解密

Blowfish 加密算法介绍:BlowFish是对称加密算法的其中一种,加密后的数据是可逆的。由于BlowFish加密/解密速度快,更重要的是任何人都可以免费使用不需要缴纳版权费,所以有不少游戏都采用BlowFish加密资源文件数据。BlowFish 每次只能加密和解密8字节数据,加密和解密的过程基本上由ADD和XOR指令运算组成,所以速度非常快。Blowfish 加密算法实现

* Blowfish加密 3 * text 需要加密的数据 privateKey 加密密钥 String f_EnBlowfish(String text, String privateKey) 9 {10byte[] cifrado1 = null;11byte[] cifrado2 = null;12byte[] mensaje = text.getBytes();{15Security.addProvider(new org.bouncycastle.jce.provider.BouncyCastleProvider());16byte[] keys = privateKey.getBytes();17SecretKeySpec sk = new SecretKeySpec(keys, “Blowfish”);18Date inic = new Date();Cipher c1 = Cipher.getInstance(“Blowfish”, “BC”);21 c1.init(Cipher.ENCRYPT_MODE, sk);22cifrado1 = c1.doFinal(mensaje, 0, mensaje.length);23 }24catch (Exception e)25 {26 e.printStackTrace();27 }28return Usual.f_toBase64String(cifrado1);29 }* Blowfish解密32 * text 需要解密的数据 privateKey 加密密钥 String f_DeBlowfish(String enText, String privateKey)38 {39byte[] cifrado1 = null;40byte[] cifrado2 = null;{43Security.addProvider(new org.bouncycastle.jce.provider.BouncyCastleProvider());44byte[] keys = privateKey.getBytes();45SecretKeySpec sk = new SecretKeySpec(keys, “Blowfish”);46// 解密cifrado1 = Usual.f_fromBase64String(enText);49Cipher c2 = Cipher.getInstance(“Blowfish”, “BC”);50 c2.init(Cipher.DECRYPT_MODE, sk);51cifrado2 = c2.doFinal(cifrado1, 0, cifrado1.length);52 }53catch (Exception e)54 {55 e.printStackTrace();56 }String(cifrado2, Charset.forName(“gb2312”));58}

Rijndael 加密解密

Rijndael 加密算法实现

* Rijndael加密 3 * text 需要加密的数据 privateKey 加密密钥 String f_EnRijndael(String text, String privateKey) 9 {10byte[] cifrado1 = null;11byte[] cifrado2 = null;12byte[] mensaje = text.getBytes();13byte[] keys = privateKey.getBytes();14// 位数限制问题SecretKeySpec sk = new SecretKeySpec(keys, “Rijndael”);17Date inic = new Date();{20Security.addProvider(new org.bouncycastle.jce.provider.BouncyCastleProvider());21Cipher c1 = Cipher.getInstance(“Rijndael”, “BC”); // 有可能出现 java.security.NoSuchAlgorithmException异常,使用下面一句试试c1.init(Cipher.ENCRYPT_MODE, sk);cifrado1 = c1.doFinal(mensaje, 0, mensaje.length);26 }27catch (Exception e)28 {29 e.printStackTrace();30 }31return Usual.f_toBase64String(cifrado1);32 }* Rijndael解密 enText 需要解密的数据 privateKey 加密密钥 String f_DeRijndael(String enText, String privateKey)40 {41byte[] cifrado1 = null;42byte[] cifrado2 = null;43byte[] keys = privateKey.getBytes();44// 位数限制问题SecretKeySpec sk = new SecretKeySpec(keys, “Rijndael”);{49Security.addProvider(new org.bouncycastle.jce.provider.BouncyCastleProvider());50Cipher c2 = Cipher.getInstance(“Rijndael”, “BC”);51// Cipher c2 = Cipher.getInstance(“Rijndael/ECB/”, “BC”);c2.init(Cipher.DECRYPT_MODE, sk);cifrado1 = Usual.f_fromBase64String(enText);cifrado2 = c2.doFinal(cifrado1, 0, cifrado1.length);58 }59catch (Exception e)60 {61 e.printStackTrace();62 }String(cifrado2, 0, cifrado2.length);64}

可就是这样,还是有人,期望过多的温暖。

几种加密算法的测试,包括对称加密和非对称加密

相关文章:

你感兴趣的文章:

标签云: