【代码积累-4】cal MD5_calmd5-程序员宅基地

技术标签: 代码学习  

import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
//import org.apache.commons.codec.binary.Hex;

public class CalMD5_Test {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		String rawString = new String((System.currentTimeMillis()*1000)+":"+generateSipRand());
        System.out.println(calMD5(rawString).toLowerCase());
        System.out.println(calMD5_2(rawString).toLowerCase());
	}

	public static String calMD5(String input)
    {
        byte[] inputByteArray = input.getBytes();
        byte[] outputByteArray = null;
        
        try
        {
            /*��ȡһ��MD5ת��������*/
            MessageDigest messageDigest = MessageDigest.getInstance("MD5");
            inputByteArray = input.getBytes();
            
            messageDigest.update(inputByteArray);
            outputByteArray = messageDigest.digest();
            
            /*���ֽ�����ת�����ַ������*/
            return byteArrayToHexString(outputByteArray);
        }
        catch (NoSuchAlgorithmException e) 
        {  
            return null; 
        } 
    }
	
	public static String calMD5_2(String input)
    {
        byte[] inputByteArray = input.getBytes();
        byte[] outputByteArray = null;
        
        try
        {
            /*��ȡһ��MD5ת��������*/
            MessageDigest messageDigest = MessageDigest.getInstance("MD5");
            inputByteArray = input.getBytes();
            
            messageDigest.update(inputByteArray);
            outputByteArray = messageDigest.digest();
            
            String temp = new String(outputByteArray);
            
            /*���ֽ�����ת�����ַ������*/
            return temp;
        }
        catch (NoSuchAlgorithmException e) 
        {  
            return null; 
        } 
    }
	
	public static String byteArrayToHexString(byte[] byteArray) 
    {  
        // ���ȳ�ʼ��һ���ַ����飬�������ÿ��16�����ַ�  
        char[] hexDigits = {'0','1','2','3','4','5','6','7','8','9', 'A','B','C','D','E','F' };  
  
  
  
        // newһ���ַ����飬�������������ɽ���ַ����ģ�����һ�£�һ��byte�ǰ�λ�����ƣ�Ҳ����2λʮ�������ַ���2��8�η�����16��2�η�����  
        char[] resultCharArray =new char[byteArray.length * 2];  

       // �����ֽ����飬ͨ��λ���㣨λ����Ч�ʸߣ���ת�����ַ��ŵ��ַ�������ȥ  
  
        int index = 0;  
  
        for (byte b : byteArray) 
        {  
            resultCharArray[index++] = hexDigits[b>>> 4 & 0xf];  
            resultCharArray[index++] = hexDigits[b& 0xf];  
        }  
        
        // �ַ�������ϳ��ַ������� 
        return new String(resultCharArray);
    }
	
	private static int generateSipRand()
    {
        int random = (int)(Math.random()*Integer.MAX_VALUE);        
        return random;
    }
}

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/sinat_36263171/article/details/72983647

智能推荐

Tomcat异常Serveral ports(8005,8080,8009) required by Tomcat v8.0 Server at localhost are already in_several ports (8005, 8080, 8009) required by tomca-程序员宅基地

文章浏览阅读2.2k次。在开始菜单->运行->cmd->输入netstat -ano命令,可以查看哪个进程占用了8080和8009端口,找到占用端口软件的PID,然后在任务管理器找到对应PID的软件,关闭结束该进程即可。可能是在打开Tomcat的情况下关闭了Eclipse/其他IDE,或是Eclipse/其他IDE非正常关闭,导致先前的Tomcat没有被关闭,端口占用。Connector 节点,将port="8080"中的端口改为一个没有被占用的端口,如10080。方法2:修改tomcat默认端口号。方法1:杀掉占用端口的软件。._several ports (8005, 8080, 8009) required by tomcat v8.0 server at localhost

饮料售卖机FSM_设计一个自动饮料售卖机画出fsm-程序员宅基地

文章浏览阅读452次。同步状态机状态机的类型mealymoore状态编码要求状态图代码仿真结果总结状态机的类型mealy输出与当前状态及输入有关本状态机应该就属于mealy状态机moore输出只与当前状态有关目前还没遇到这种状态机,我认为应该就是只有状态的转换吧,不考虑输入。状态编码我们知道有三种编吗方式;1.binary编码:状态描述简洁,占用较少寄存器资源,是比较常用的状态机编码方式;2.gr..._设计一个自动饮料售卖机画出fsm

291 蒙德里安的梦想(状态压缩dp)_291. 蒙德里安的梦想-程序员宅基地

文章浏览阅读246次。1. 问题描述:求把 N×M 的棋盘分割成若干个 1×2 的的长方形,有多少种方案。例如当 N=2,M=4 时,共有 5 种方案。当 N=2,M=3 时,共有 3 种方案。如下图所示:输入格式输入包含多组测试用例。每组测试用例占一行,包含两个整数 N 和 M。当输入用例 N=0,M=0 时,表示输入终止,且该用例无需处理。输出格式每个测试用例输出一个结果,每个结果占一行。数据范围1 ≤ N,M ≤ 11输入样例:1 21 31 42 22 32 42 11_291. 蒙德里安的梦想

MapReduce设计模式学习笔记_mapreduce四个阶段的任务-程序员宅基地

文章浏览阅读1.9k次。MapReduce_mapreduce四个阶段的任务

Linux 常见特殊符号-程序员宅基地

文章浏览阅读78次。[size=large][b]1,> 重定向输出符号 用法:命令 >文件名 特性:覆盖(当输入文件和输出文件是同一文件,文 件内容被清空;不适合连续重定向) 典型应用:合并文件(cat a b >c);清空文件(cat /dev/null);文件打印2,>> 重定向输出符号 用法:命令 >>文..._linux不同字体下的¥

DXF格式文件导入AD,做成可加工的PCB文件_ad怎么根据dxf文件绘制pcb-程序员宅基地

文章浏览阅读2.4k次。DXF文件导入AD注意事项也可以导入到KEEPOUT或者机械层对于有问题,可以tool菜单,reset,对于导入绿色是报错,相当于线宽不满足规则,没有改变线宽,默认为10mil=0.0127mm_ad怎么根据dxf文件绘制pcb

随便推点

AD学习笔记-程序员宅基地

文章浏览阅读106次。1、12345678设置为对齐快捷键(ctrl+左键可设置)2、尺寸要合适,不然在原理图中大小不一3、空格转向4、T+c可以快速加入新的元器件。

CSS3淡入淡出滑块-程序员宅基地

文章浏览阅读646次。CSS3 Fade slider Today I would like to show you how to create nice and smooth css3 slider. It uses fade effect to switch between slides. Plus, you can use custom promo text for each slide. We will use...

adb shell 命令行模拟发送开机广播android.intent.action.BOOT_COMPLETED测试开机自启动_am broadcast -a android.intent.action.boot_complet-程序员宅基地

文章浏览阅读1.2w次。开发中需求需要监听开机广播android.intent.action.BOOT_COMPLETED,然后让应用开机自启动。以前测试总是傻傻的关机然后再开机再验证有没自启动,很浪费时间,现在发现原来可以通过adb shell命令模拟开机广播,记录下模拟开机广播adb shell am broadcast -a android.intent.action.BOOT_COMPLETED当然..._am broadcast -a android.intent.action.boot_completed

windows环境Elasticsearch安装启动,配置ik分词器及安装head插件_es,ik,head启动-程序员宅基地

文章浏览阅读642次。整理一下windows版ES的简单部署过程1:安装ES官网下载ES的zip包,https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.4.2-windows-x86_64.zip下载好之后直接解压,然后在/bin下直接点击elasticsearch.bat启动这个就是成功跑起来了,接下来去浏览器访问,..._es,ik,head启动

蓝牙天线PCB设计-程序员宅基地

文章浏览阅读3.5k次。前言蓝牙(Bluetooth)是一种能够支持短距离无线通信的无线电技术,现已广泛应用于移动电话、便携式电脑等设备中,普遍接受它的工作频段为2. 4 GHz—2. 484 GHz。常见的蓝牙天线主要分为偶极天线、PIFA天线和陶瓷天线三种。PIFA天线属于单极子天线,它的反射损耗对地板大小比较敏感,同时,其远场辐射不均匀,难以满足手机、蓝牙耳机等终端设备对天线的全向辐射要求;陶瓷天线普遍增益较小;偶极天线易于实现较大的增益和较小的反射损耗,但其电长度一般都是波长的1/2。按此计算工作在2. 45 GHz的_蓝牙天线pcb设计

一千万条数据去重_DB2千万级数据去重-程序员宅基地

文章浏览阅读548次。insert into FACT_WBCKTJB_TMP select * from FACT_WBCKTJB where (rq,zh)) in(select rq,zh from FACT_WBCKTJB group by rq,zh having count(*)>1);--3.删除原表重复数据delete from FACT_WBCKTJB where (rq,zh)) in(sel..._insert into select 千万级数据量 db2

推荐文章

热门文章

相关标签