/** * 获取权限签名 * @param params * @return */ public String getSignature(String params) throws Exception{ MessageDigest crypt = MessageDigest.getInstance("SHA-1"); crypt.reset(); crypt.update(params.getBytes("UTF-8")); String signature = byteToHex(crypt.digest()); return signature; } private String byteToHex(final byte[] hash){ Formatter formatter = new Formatter(); for(byte b:hash){ formatter.format("%02x",b); } String result = formatter.toString(); formatter.close(); return result; }
java.security.MessageDigest类用于为应用程序提供信息摘要算法的功能,如 MD5 或 SHA 算法。简单点说就是用于生成散列码。信息摘要是安全的单向哈希函数,它接收随意大小的数据,输出固定长度的哈希值。关于信息摘要和散列码请參照《数字证书简单介绍》
MessageDigest 通过其getInstance系列静态函数来进行实例化和初始化。MessageDigest 对象通过使用 update
方法处理数据。不论什么时候都能够调用 reset
方法重置摘要。一旦全部须要更新的数据都已经被更新了,应该调用 digest
方法之中的一个完毕哈希计算并返回结果。
对于给定数量的更新数据,digest
方法仅仅能被调用一次。digest
方法被调用后,MessageDigest 对象被又一次设置成其初始状态。