概述
/**
* SHA3加密处理类
*/
public class SHA3Utils {
private static Size DEFAULT = Size.S224;
/**
* SHA3加密处理.
*
* @param string
* 加密对象字符串
* @return 加密后字符串
*/
public static String digest(String string) {
return digest(string, DEFAULT, true);
}
/**
* 指定大小进行SHA3加密处理.
*
* @param string
* 加密对象字符串
* @param s
* 大小
* @return SHA3加密后字符串
*/
public static String digest(String string, Size s) {
return digest(string, s, true);
}
/**
* 指定大小,并且指定是否转换成16进制进行SHA3加密处理.
*
* @param string
* 加密对象字符串
* @param s
* 大小
* @param bouncyencoder
* 是否转换成16进制
* @return SHA3加密后字符串
*/
public static String digest(String string, Size s, boolean bouncyencoder) {
Size size = s == null ? DEFAULT : s;
DigestSHA3 md = new DigestSHA3(size.getValue());
String text = string != null ? string : "null";
try {
md.update(text.getBytes("UTF-8"));
} catch (UnsupportedEncodingException ex) {
// most unlikely
md.update(text.getBytes());
}
byte[] digest = md.digest();
return encode(digest, bouncyencoder);
}
/**
* 根据字节数组是否转换成16进制进行SHA3加密处理.
*
* @param bytes
* 字节数组
* @param bouncyencoder
* 是否转换成16进制
* @return SHA3加密后字符串
*/
public static String encode(byte[] bytes, boolean bouncyencoder) {
if (bouncyencoder)
return Hex.toHexString(bytes);
else {
BigInteger bigInt = new BigInteger(1, bytes);
return bigInt.toString(16);
}
}
/**
* 大小枚举.
*/
private enum Size {
S224(224), S256(256), S384(384), S512(512);
int bits = 0;
Size(int bits) {
this.bits = bits;
}
public int getValue() {
return this.bits;
}
}
最后
以上就是妩媚煎蛋为你收集整理的SHA3 加密的全部内容,希望文章能够帮你解决SHA3 加密所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复