您当前所在位置:主页 > 新闻中心 > 加密算法 >
新闻中心 / News

金甲加密软件免费下载

联系智融 / CONTACT US

客服电话:027-87379468

技术支持:027-87379468

传真:027-87379428

邮箱:gongch@zronggsoft.com

QQ: 点击这里给我发消息 点击这里给我发消息
加密算法

java如何采用md5加密算法加密

发布时间:2015-05-11 16:37
    根据MD5算法的特点,我们可以把MD5加密过程看作是一个函数调用过程,建议必须做如下方式修改,这样可以保证一定程度上你的网站用户和数据安全:
 
  1、修改MD5算法中的4个常数,这是最捷径的作法,其特点是加密后的数据和加密前非常类似,但是不会被破解
 
  2、多次加密,对MD5加密过的数据进行二次或三次加密,或者在每次加密后从重抽取部分值进行在加密,比如“我爱你”,加密后“1E6986ACEC7BAE541AB7B37B99260DAF”,我们可以取任意一部分进行再加密,比如取前18位“1E6986ACEC7BAE541”进行再加密得到“E3E0A1F51038849583263FE1F1B8B3E9”,这种做法修改很简单,比如asp中调用是md5("password")那么你可以改成md5(left(md5("password"),16)),这样以来就很安全了,就是你的数据被下载,破解的话也是不可能的
 
  3、仿MD5加密,顾名思义,我们不采用MD5加密,而采用其他算法,然后取其中的部分散列,比如用SHA1或SHA64得到加密结果,然后取其中的32位或16位,很像MD5算法加密的结果,可以保证不被破解

十六位的md5加密
 
  private static void Md5(String plainText ) {
 
  try {
 
  MessageDigest md = MessageDigest.getInstance("MD5");
 
  md.update(plainText.getBytes());
 
  byte b[] = md.digest();
 
  int i;
 
  StringBuffer buf = new StringBuffer("");
 
  for (int offset = 0; offset < b.length; offset++) {
 
  i = b[offset];
 
  if(i<0) i+= 256;
 
  if(i<16)
 
  buf.append("0");
 
  buf.append(Integer.toHexString(i));
 
  }
 
  System.out.println("result: " + buf.toString());//32位的加密
 
  System.out.println("result: " + buf.toString()。substring(8,24));//16位的加密
 
  } catch (NoSuchAlgorithmException e) {
 
  // TODO Auto-generated catch block
 
  e.printStackTrace();
 
  }
 
  }
 
  Md5("12312312312312"); 结果:
 
  result: ba56bab91016bcb37878e06c16e9e68f

参考资料地址:http://www.cnblogs.com/computer-lzy/archive/2011/04/28/2031649.html
本文链接:http://www.zrongsoft.com/a/webbase/jiamisuanfa20150511327.html
相关文章推荐

报价申请
加密软件价格申请
技术咨询
加密软件技术咨询
关注我们

智融科技