1. MD5加密,常用于加密用户名密码,当用户验证时。

protected byte[] encrypt(byte[] obj){ 
  try { 
  MessageDigest md5 = MessageDigest.getInstance("MD5"); 
  md5.update(obj); 
  return md5.digest(); 
  } catch (NoSuchAlgorithmException e){ 
  e.printStackTrace(); 
  } 
  }

  2. SHA加密,与MD5相似的用法,只是两者的算法不同。

protected byte[] encrypt(byte[] obj) { 
  try { 
  MessageDigest sha = MessageDigest.getInstance("SHA"); 
  sha.update(obj); 
  return sha.digest(); 
  } catch (NoSuchAlgorithmException e) { 
  e.printStackTrace(); 
  } 
  }

  3. RSA加密,RAS加密允许解密。常用于文本内容的加密。

import java.security.KeyPair;  
  import java.security.KeyPairGenerator;  
  import java.security.interfaces.RSAPrivateKey;  
  import java.security.interfaces.RSAPublicKey;  
  import javax.crypto.Cipher;  /** *//** 
  * RSAEncrypt 
  *  
  * @author maqujun 
  * @see 
  */ 
  public class RSAEncrypt { 
  /** *//** 
  * Main method for RSAEncrypt. 
  * @param args 
  */ 
  public static void main(String[] args) { 
  try ...{ 
  RSAEncrypt encrypt = new RSAEncrypt(); 
  String encryptText = "encryptText"; 
  KeyPairGenerator keyPairGen = KeyPairGenerator.getInstance("RSA"); 
  keyPairGen.initialize(1024); 
  KeyPair keyPair = keyPairGen.generateKeyPair(); 
  // Generate keys 
  RSAPrivateKey privateKey = (RSAPrivateKey) keyPair.getPrivate(); 
  RSAPublicKey publicKey = (RSAPublicKey) keyPair.getPublic(); 
  byte[] e = encrypt.encrypt(publicKey, encryptText.getBytes()); 
  byte[] de = encrypt.decrypt(privateKey,e); 
  System.out.println(encrypt.bytesToString(e)); 
  System.out.println(encrypt.bytesToString(de)); 
  } catch (Exception e) { 
  e.printStackTrace(); 
  } 
  } 
  /** *//** 
  * Change byte array to String. 
  * @return byte[] 
  */ 
  protected String bytesToString(byte[] encrytpByte) { 
  String result = ""; 
  for (Byte bytes : encrytpByte) { 
  result += (char) bytes.intValue(); 
  } 
  return result; 
  } 
  /** *//** 
  * Encrypt String. 
  * @return byte[] 
  */ 
  protected byte[] encrypt(RSAPublicKey publicKey, byte[] obj) { 
  if (publicKey != null) { 
  try ...{ 
  Cipher cipher = Cipher.getInstance("RSA"); 
  cipher.init(Cipher.ENCRYPT_MODE, publicKey); 
  return cipher.doFinal(obj); 
  } catch (Exception e) { 
  e.printStackTrace(); 
  } 
  } 
  return null; 
  } 
  /** *//** 
  * Basic decrypt method 
  * @return byte[] 
  */ 
  protected byte[] decrypt(RSAPrivateKey privateKey, byte[] obj){ 
  if (privateKey != null){ 
  try { 
  Cipher cipher = Cipher.getInstance("RSA"); 
  cipher.init(Cipher.DECRYPT_MODE, privateKey); 
  return cipher.doFinal(obj); 
  } catch (Exception e){ 
  e.printStackTrace(); 
  } 
  } 
  return null; 
  } 
  }

最新文章

  1. phpexcel导入数据提示失败
  2. php token的生成
  3. MQ通道配置
  4. Javascript参考手册
  5. BZOJ3571 : [Hnoi2014]画框
  6. (leetcode)Reverse Linked List 脑子已经僵住
  7. SVN标准目录结构
  8. Unity3D定制新建C#文件的头描述
  9. centos7上源码安装mysql5.7.11
  10. bzoj2823
  11. BZOJ3398: [Usaco2009 Feb]Bullcow 牡牛和牝牛
  12. linux系统结构和系统命令初步
  13. Exception fixing docBase for context
  14. java工具类(三)之生成若干位随机数
  15. 3D Slicer中文教程(五)—三维视图颜色改变
  16. django源码分析 python manage.py runserver
  17. next()方法 执行下一个中间件 类似than
  18. Quartus prime 16.0 中通过JTAG固化程序
  19. 002.Open-Falcon Server部署及Agent监控
  20. 对大学生学习Linux系统的七项实用建议

热门文章

  1. Buffer源码深入分析
  2. JavaEE目录
  3. linux之ifconfig命令
  4. pr_debug、dev_dbg等动态调试一
  5. Go VUE --- vuejs在服务器部署?
  6. UVa 816 (BFS求最短路)
  7. zabbix主机自动发现和监控
  8. iptables 使用场景
  9. Spring管理的bean初始化方法的三种方式,以及@PostConstruct不起作用的原因
  10. 人工智能真NB?何不去炒股?