java SHA1加密算法
2024-10-08 14:33:11
package com.cn.test.rsa; import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import java.util.Random; public class GenerServerDigest {
//生成32位随机数
public static String generatorRandom(){
String _RndData;
int b = 0;
int a = 0;
_RndData = "";
Random r = new Random();
for (int i = 0; i < 32; i++) {
a = r.nextInt(26);
b = (char) (a + 65);
_RndData += new Character((char) b).toString();
}
return _RndData;
}
public static void main(String[] args) {
String ServerDigest = null;
try{
//进行SHA1运算
char[] HEXCHAR = { '0', '1', '2', '3', '4', '5', '6', '7',
'8', '9', 'a', 'b', 'c', 'd', 'e', 'f' };
String MsgtoDigest = GenerServerDigest.generatorRandom();
MessageDigest md = null;
md = MessageDigest.getInstance("SHA1"); byte[] digest = md.digest(MsgtoDigest.getBytes()); StringBuilder sb = new StringBuilder(digest.length * 2);
for (int i = 0; i < digest.length; i++) {
sb.append(HEXCHAR[(digest[i] & 0xf0) >>> 4]);
sb.append(HEXCHAR[digest[i] & 0x0f]);
}
ServerDigest = sb.toString();
} catch (NoSuchAlgorithmException e){
e.printStackTrace();
}
System.out.println(ServerDigest);
}
}
最新文章
- 设备旋转,创建水平模式布局--Android studio
- TypeScript - 基本类型系统
- [Java 基础]运算符和表达式
- 转 String,StringBuffer与StringBuilder的区别??
- 经典C#编程理解,概要,经典
- MySQL explain key_len 大小的计算
- 第六届蓝桥杯B组C++试题
- IOS 通过button获取cell
- v​s​快​捷​键
- Mono+CentOS+Jexus
- 一步一步学EF系列1【Fluent API的方式来处理实体与数据表之间的映射关系】
- 解决 jQuery UI datepicker z-index默认为1 的问题
- 【我的书】Unity Shader的书 — 目录(2016.5.19最后一次更新)
- SQLite AND/OR 运算符(http://www.w3cschool.cc/sqlite/sqlite-and-or-clauses.html)
- [Swift]LeetCode98. 验证二叉搜索树 | Validate Binary Search Tree
- Linux系统学习之文件管理
- 我想要得那块牌—记烟台大学第一届";ACM讲堂";
- win10企业版永久激活2017怎么用
- Python 3 利用 Dlib 19.7 进行人脸检测
- CLR如何控制类型中的字段排序