编解码工具类——SHA1算法

     系统接口之间进行交互,或采用WebService方式,或采用HTTP方式;无论采用哪一种方式,都会涉及安全性问题。提高安全性方法之一就是对交互数据进行编、解码操作。所以在此编写了一个编解码工具类,实现功能复用。该类引用了Bouncy Castle开源项目中的bcprov-jdk15-145.jar包。

 

     Bouncy Castle是一种用于Java平台的开放源码的轻量级密码术包。它支持大量的密码术算法,并提供 JCE 1.2.1 的实现。Bouncy Castle是轻量级的,从J2SE 1.4J2ME(包括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基础包。经过测试,上述两种方法在效率上不相上下。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值