Java SHA-256加密的两种实现方法详解
本文实例讲述了JavaSHA-256加密的两种实现方法。分享给大家供大家参考,具体如下:
最近在做注册的一个功能,密码要进行加密,一开始想用MD5加密,但是听说被破解了已经,于是想玩玩SHA-256加密。学习了下,总结两种方法供后面参考:
1、利用Apache的工具类实现加密:
maven:
commons-codec commons-codec ${common-codec.version}
实现代码:
/*** *利用Apache的工具类实现SHA-256加密 *@paramstr加密后的报文 *@return */ publicstaticStringgetSHA256Str(Stringstr){ MessageDigestmessageDigest; StringencdeStr=""; try{ messageDigest=MessageDigest.getInstance("SHA-256"); byte[]hash=messageDigest.digest(str.getBytes("UTF-8")); encdeStr=Hex.encodeHexString(hash); }catch(NoSuchAlgorithmExceptione){ e.printStackTrace(); }catch(UnsupportedEncodingExceptione){ e.printStackTrace(); } returnencdeStr; }
2、利用Java自带的实现加密:
/** *利用java原生的摘要实现SHA256加密 *@paramstr加密后的报文 *@return */ publicstaticStringgetSHA256StrJava(Stringstr){ MessageDigestmessageDigest; StringencodeStr=""; try{ messageDigest=MessageDigest.getInstance("SHA-256"); messageDigest.update(str.getBytes("UTF-8")); encodeStr=byte2Hex(messageDigest.digest()); }catch(NoSuchAlgorithmExceptione){ e.printStackTrace(); }catch(UnsupportedEncodingExceptione){ e.printStackTrace(); } returnencodeStr; } /** *将byte转为16进制 *@parambytes *@return */ privatestaticStringbyte2Hex(byte[]bytes){ StringBufferstringBuffer=newStringBuffer(); Stringtemp=null; for(inti=0;iPS:关于加密解密感兴趣的朋友还可以参考本站在线工具:
在线
SHA1加密工具: http://tools.jb51.net/password/sha1encode
文字在线加密解密工具(包含AES、DES、RC4等):
http://tools.jb51.net/password/txt_encode在线散列/哈希算法加密工具:
http://tools.jb51.net/password/hash_encrypt在线MD5/hash/
SHA-1/SHA-2/SHA-256/SHA-512/SHA-3/RIPEMD-160加密工具: