java md5加密 16进制_MD5加密,并转换为16进制
背景:在做爬虫的URL处理专题中需要对URL进行处理再存储。
要求: Java 中对数据进行MD5加密,并转换为16进制,以字符串的形式输出
(1) 在Java中,java的java.security.MessageDigest已经定义了MD5的计算,得到的结果是128位整数。
(2) 将此128位转换为十六进制以字符串的形式输出
下面直接来代码
import java.security.NoSuchAlgorithmException;
public class MD5 {
/**
* 将source进行md加密,结果是128位二进制数。
* 将结果进行采用十六进制转换输出字符串
* */
public static String getMD5(byte[] source){
String result=null;
char hexDigits[]={ '0','1','2','3','4','5','6','7','8','9','a','b','c','d','e','f'};
try {
java.security.MessageDigest md=java.security.MessageDigest.getInstance("MD5");
md.update(source); //更新摘要
byte tmp[]=md.digest(); //进行md5计算
char str[] =new char[ 16*2 ]; //md的结果是128位的长整数,用16进制表示的话就是32位,即32个字符表示
int k = 0;
for( int i=0 ; i<16; i++){
byte byte0 =tmp[i];
str[k++] = hexDigits[ byte0 >>> 4 & 0xf];//低四位与1111做逻辑与运算 得到16进制数存入低位
str[k++] = hexDigits[ byte0 & 0xf]; //高四位与1111做逻辑与运算得到16进制存入高位
}
result = new String (str);
} catch (NoSuchAlgorithmException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return result;
}
}
java md5加密 16进制_MD5加密,并转换为16进制相关推荐
- java md5加盐与解密_md5加密,md5加盐加密和解密
packagecom.java.test;importjava.security.MessageDigest;importjava.security.SecureRandom;importjava.u ...
- 进制转换之十进制转换为D进制——整数部分除基取余法
将十进制x转换为D进制的y: [方法]:整数采用"除基取余法",小数采用"乘基取整法" [推导]:以三位D进制为例,假设y的各位是a1a2a3 y = a 1 ...
- 进制转换:十进制转换为任意进制、任意进制转换为十进制
目录 十进制转换为任意进制 任意进制转换为十进制 十进制转换为任意进制 //将10进制数num转换为d进制数 void convert_base(int num, int d) {int k;stac ...
- 12小时制(AM PM)字符串转换为24时制
今天遇到时间转换问题,将带AM,PM的时间字符串转换为24小时制时间.查阅资料后解决,代码如下: 所用到的语言是scala语言 import java.text.SimpleDateFormat im ...
- Java的不同进制输出,[DanoR][Java小码][进制转换::将double转换为不同进制后用String输出]...
功能简述 进制转换 输入: 一个数(double),目标进制(int)和小数的保留位数(int) 输出: 相应进制的表示方式(String) 参数说明 double number; //将要被转换的数 ...
- 关于java实现十进制转换为任意进制
这原本是Noip2000的一个题目 https://www.luogu.com.cn/problem/P1017 被我们的伟大的唯心主义编程大师拿来当成了作业题,我正好复习一下进制问题 首先十进制转换 ...
- 进制转换(m 进制 x 转换为 n 进制的数)
摘要:以前写的进制转换一般不会考虑大数问题,举个例子就是如果16进制的FFFFFFFFF就是16^9是一个非常大的数,这个时候就需要用数组来存. 题目: 将M进制的数X转换为N进制的数输出. 输入 输 ...
- 加密解密基础问题:字节数组和(16进制)字符串的相互转换
在加密时,一般加密算法和hash算法,它们操作的都是字节数组,对字节数组按照加密算法进行各种变换,运算,得到的结果也是字节数组.而我们一般是要求对字符串进行加密,所以就涉及到字符串String到 by ...
- java md5 源码_MD5加密 Java源代码
public classMD5_Encoding {//RFC1321中定义的标准4*4矩阵的常量定义. static final int S11 = 7, S12 = 12, S13 = 17, S ...
最新文章
- iOS - 支持水平 / 垂直显示自动滚动的跑马灯控件 --- SKAutoScrollLabel 的使用和实现
- 4.5.2 OSPF协议与链路状态算法
- getchar()到底怎么用_脱霉剂到底该怎么用?
- 多线程的两种实现方式和区别?
- 八大排序算法交换排序算法
- Win32窗体应用程序如何添加资源文件?
- 概率论和数理统计 - 02 - 随机变量及其分布
- IT-标准化-系列-15.在VPC 2007中构建虚拟网络
- (4)Linux进程调度-组调度及带宽控制
- C++中STL-queue使用方法
- 记一次mysql_query(): xxx is not a valid MySQL-Link resource
- Nginx配置——禁止指定user_agent
- 2019.8.29C++工作错误记录——Socket编程中出现ws2def.h文件“应输入标识符”或“重定义”问题(VS2015)
- EPLAN史上最全部件库,官网下载,部件宏,EDZ格式
- (已解决)windows2020卸载office2013(安装程序包语言不受系统支持)
- 【Android】iOS开发中xconfig和script脚本的使用
- HTTPS/HTTP
- SQL DXP 6.6.x 高级版--最新版
- ASCII2ChineseSheet
- hyper-v虚拟机的基本使用
热门文章
- [ZT]哈佛寓言13则
- UITableView经典教程
- ubuntu 安装sougou输入法
- VSCode插件MySQL连接数据库
- tcpdump抓取TCP协议、GRE协议数据
- linux系统是如何获取网卡的通信数据的
- 多进程、多线程同步(通讯)的方法
- 都说PHP简单,那新手开始如何入门PHP?
- android qq 圆形头像,把图片转换成圆形(仿qq手机版的名片头像)
- Excel中复杂字符串如何按类型拆分?例如“花椒12.5KG“拆分成花椒、12.5和KG