您当前位置: 圣才学习网首页 >> IT类 >> Java程序设计

Java常见加密算法与数字证书(一)(5)

扫码手机阅读
用圣才电子书APP或微信扫一扫,在手机上阅读本文,也可分享给你的朋友。
评论(0
   
来源:网络 作者:未知
 
  再给出一个测试类:
 
  Java代码
 
  import static org.junit.Assert.*
 
  import org.junit.Test
 
  /**
 
  *
 
  * @author 梁栋 http://www.feng123.com
 
  * @version 1.0
 
  * @since 1.0
 
  */
 
  public class CoderTest {
 
  @Test
 
  public void test() throws Exception {
 
  String inputStr "简单加密"
 
  System.err.println"原文:\n" inputStr);
 
  byte[] inputData inputStr.getBytes();
 
  String code Coder.encryptBASE64inputData);
 
  System.err.println"BASE64加密后:\n" code);
 
  byte[] output Coder.decryptBASE64code);
 
  String outputStr new Stringoutput);
 
  System.err.println"BASE64解密后:\n" outputStr);
 
  // 验证BASE64加密解密一致性
 
  assertEqualsinputStr outputStr);
 
  // 验证MD5对于同一内容加密是否一致
 
  assertArrayEqualsCoder.encryptMD5inputData), Coder
 
  .encryptMD5inputData));
 
  // 验证SHA对于同一内容加密是否一致
 
  assertArrayEqualsCoder.encryptSHAinputData), Coder
 
  .encryptSHAinputData));
 
  String key Coder.initMacKey();
 
  System.err.println"Mac密钥:\n" key);
 
  // 验证HMAC对于同一内容,同一密钥加密是否一致
 
  assertArrayEqualsCoder.encryptHMACinputData key), Coder.encryptHMAC
 
  inputData key));
 
  BigInteger md5 new BigIntegerCoder.encryptMD5inputData));
 
  System.err.println"MD5:\n" md5.toString16));
 
  BigInteger sha new BigIntegerCoder.encryptSHAinputData));
 
  System.err.println"SHA:\n" sha.toString32));
 
  BigInteger mac new BigIntegerCoder.encryptHMACinputData inputStr));
 
  System.err.println"HMAC:\n" mac.toString16));
 
  }
 
  控制台输出:
 
  Console代码
 
  原文:
 
  简单加密
 
  BASE64加密后:
 
  566A5Y2V5Yqg5aG
 
  BASE64解密后:
 
  简单加密
 
  Mac密钥:
 
  uGxdHC6ylRDaik++leFtGwiMbuYUJ6mqHWyhSgF4trVkVBBSQvY/a22xU8XT1RUemdCWW155Bke
 
  pBIpkd7QHg==
 
  MD5:
 
  -550b4d90349ad4629462113e7934de56
 
  SHA:
 
  91k9vo7p400cjkgfhjh0ia9qthsjagfn
 
  HMAC:
 
  2287d192387e95694bdbba2fa941009a
 
  BASE64的加密解密是双向的,可以求反解。
 
  MD5SHA以及HMAC是单向加密,任何数据加密后只会产生唯一的一个加密串,通常用来校验数据在传输过程中是否被修改。其中HMAC算法有一个密钥,增强了数据传输过程中的安全性,强化了算法外的不可控因素。
 
  单向加密的用途主要是为了校验数据在传输过程中是否被修改。
 
  控制台输出:
 
  Console代码
 
  原文:
 
  简单加密
 
  BASE64加密后:
 
  566A5Y2V5Yqg5aG
 
  BASE64解密后:
 
  简单加密
 
  Mac密钥:
 
  uGxdHC6ylRDaik++leFtGwiMbuYUJ6mqHWyhSgF4trVkVBBSQvY/a22xU8XT1RUemdCWW155Bke
 
  pBIpkd7QHg==
 
  MD5:
 
  -550b4d90349ad4629462113e7934de56
 
  SHA:
 
  91k9vo7p400cjkgfhjh0ia9qthsjagfn
 
  HMAC:
 
  2287d192387e95694bdbba2fa941009a
 
  BASE64的加密解密是双向的,可以求反解。
 
  MD5SHA以及HMAC是单向加密,任何数据加密后只会产生唯一的一个加密串,通常用来校验数据在传输过程中是否被修改。其中HMAC算法有一个密钥,增强了数据传输过程中的安全性,强化了算法外的不可控因素。
 
单向加密的用途主要是为了校验数据在传输过程中是否被修改。
 
相关阅读
 
 

小编工资已与此挂钩!一一分钱!求打赏↓ ↓ ↓

如果你喜欢本文章,请赐赏:

已赐赏的人
最新评论(共0条)评论一句