首页 > 代码库 > 代替MD5加密的SHA安全散列加密算法代码整理
代替MD5加密的SHA安全散列加密算法代码整理
根据以往的经验,我们通常使用MD5加密算法,尽管其可以破解,但因其周期性比较长,所以我也一直在使用,今天学习到了一种新的加密算法,安全哈希算法,确切的说他并不是数据加密算法,而是数据数字签名算法,它不是对整个数据进行加密,而是对数据提取部分信息进行签名,采用该算法对不同的数据进行加密,会得到唯一的字符串,该字符串就像签名一样,只有该数据才可能产生这样的签名字符串。
下面是java实现的SHA算法加密,我们可以使用该算法编写加密工具类:
package com.cloud.skater.util; import java.security.MessageDigest; import java.util.logging.Level; import java.util.logging.Logger; public class Encrypt { private static final String KEY_SHA = "SHA"; private static final Logger log = Logger .getLogger(Encrypt.class.getName()); public static String encryptSHA(String data) throws Exception { MessageDigest sha = MessageDigest.getInstance(KEY_SHA); sha.update(data.getBytes()); return byteArrayToHexString(sha.digest()); } // 将字节数组转换为十六进制字符串 private static String byteArrayToHexString(byte[] bytearray) { String strDigest = ""; for (int i = 0; i < bytearray.length; i++) { strDigest += byteToHexString(bytearray[i]); } return strDigest; } // 将字节转换为十六进制字符串 private static String byteToHexString(byte ib) { char[] Digit = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f' }; char[] ob = new char[2]; ob[0] = Digit[(ib >>> 4) & 0X0F]; ob[1] = Digit[ib & 0X0F]; String s = new String(ob); return s; } public static void main(String args[]) { try { System.out.println(Encrypt.encryptSHA("zhang1234")); } catch (Exception e) { log.log(Level.SEVERE, e.getMessage(), e.getCause()); } } }使用它,可以直接粘贴,作为工具类。
代替MD5加密的SHA安全散列加密算法代码整理
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。