编解码工具类——SHA1算法
系统接口之间进行交互,或采用WebService方式,或采用HTTP方式;无论采用哪一种方式,都会涉及安全性问题。提高安全性方法之一就是对交互数据进行编、解码操作。所以在此编写了一个编解码工具类,实现功能复用。该类引用了Bouncy Castle开源项目中的bcprov-jdk15-145.jar包。
Bouncy Castle是一种用于Java平台的开放源码的轻量级密码术包。它支持大量的密码术算法,并提供 JCE 1.2.1 的实现。Bouncy Castle是轻量级的,从J2SE 1.4到J2ME(包括MIDP)平台,它都可以运行。它是在MIDP上运行的唯一完整的密码术包。
下载地址:http://www.bouncycastle.org/latest_releases.html
可依据项目所用JDK,下载Provider下相应的JAR包。
/** * SHA1编码 * @param in 待编码值 * @return 已编码值 */ public static byte[] sha1Encode(String in) { byte[] out = null; try { Digest digest = new SHA1Digest(); digest.update(in.getBytes(CHARSET), 0, in.length()); out = new byte[digest.getDigestSize()]; digest.doFinal(out, 0); } catch (UnsupportedEncodingException e) { logger.error("SHA1编码操作,不支持字符集" + CHARSET + "!"); } return out; }
该方法引用了Bouncy Castle包。
/** * SHA1编码 * @param in 待编码值 * @return 已编码值 */ public static byte[] sha1InternalEncode(String in) { byte[] out = null; try { MessageDigest messagedigest = MessageDigest.getInstance("SHA-1"); messagedigest.update(in.getBytes(CHARSET)); out = messagedigest.digest(); } catch (NoSuchAlgorithmException e) { logger.error("SHA1编码出错!", e); } catch (UnsupportedEncodingException e) { logger.error("SHA1编码操作,不支持字符集" + CHARSET + "!"); } return out; }
该方法只使用了JDK基础包。经过测试,上述两种方法在效率上不相上下。
相关推荐
HappinessCat 2020-03-27
GoatSucker 2020-02-18
seekerhit 2020-02-15
poplpsure 2019-12-26
84251449 2019-11-01
royrui 2012-08-11
wangxiaohua 2010-09-21
半纸药笺 2019-06-25
草堂 2008-10-07
nmjhehe 2019-06-09
alexlynn 2015-12-26
ALDRIDGE 2015-02-28
Qunicy 2013-11-26
jiayuqicz 2018-01-09
myGodsky 2015-09-09
Pythonandme 2017-07-14
liangds 2014-06-26
csdnfelix 2009-09-09