package com.wh.md5;

import java.security.MessageDigest;
import java.util.Arrays; /**
* @author 王恒
* @datetime 2017年7月5日 下午3:40:58
* @description
* MD5加密源码
* 核心是21行到26行及36、37行(好吧,位运算在这里真的挺有用)
* @see 常用于对登录密码进行加密,能保证,即使数据库被侵占了,对方也拿不到明文密码
*/
public class MyMd5 { public final static String md5(String s){
//以16进制进行转换
char[] hexDigits={'0','1','2','3','4','5','6','7','8','9','a','b','c','d','e','f'};
try{
//将字符创变为字节数组
byte[] strTemp = s.getBytes();
//创建MessageDigest对象
MessageDigest mdTemp = MessageDigest.getInstance("MD5");
//使用strTemp字节数组更新mdTemp摘要
mdTemp.update(strTemp);
//通过填充之类的相关操作完成哈希计算
byte[] digest = mdTemp.digest();
System.out.println("byte[] digest: "+Arrays.toString(digest));
// 得到哈希算法之后的长度
int j=digest.length;
//System.out.println("digest.length: "+j);
//创建一个新的字符数组,长度为digest的两倍,用于创建新的字符创
char[] newChar=new char[2*j];
int k=0;
for(int i=0;i<j;i++){
byte b=digest[i];
newChar[k++]=hexDigits[b>>>4&0xf];//奇数位的位运算
newChar[k++]=hexDigits[b&0xf];//偶数位的位运算
}
//返回一个新的字符串
return new String(newChar);
}catch(Exception e){
return null;
}
} public static void main(String[] args) {
String md5 = MyMd5.md5("b");
System.out.println("md5: "+md5);
//第1次输出值 md5: 92eb5ffee6ae2fec3ad71c777531578f
//第2次输出值 md5: 92eb5ffee6ae2fec3ad71c777531578f
//从这里看出 值不是随意生成的,给定更新数据,则每次生成的值都一样
} }

  

自己写的MD5加密原码的更多相关文章

  1. MD5加密源码!

    import java.security.*; class MD5{ public final static String MD5(String s){ char hexDigits[] = {'0' ...

  2. linux md5 加密字符串和文件方法

    linux md5 加密字符串和文件方法 MD5算法常常被用来验证网络文件传输的完整性,防止文件被人篡改.MD5全称是报文摘要算法(Message-Digest Algorithm 5),此算法对任意 ...

  3. Linux下使用MD5加密BASE64加密

    这里以字符串123456为例子,它的md5密文值为:e10adc3949ba59abbe56e057f20f883e 这里以1.txt为需要被加密的文件. 一. 用oppnssl md5 加密字符串和 ...

  4. MD5加密学习

    MD5(Message Digest --消息摘要算法)算法是一种散列(hash)算法(摘要算法,指纹算法),不是一种加密算法(易错),任何长度的任意内容都可以用MD5计算出散列值.主要作用是[验明“ ...

  5. wemall app商城源码android开发MD5加密工具类

    wemall-mobile是基于WeMall的android app商城,只需要在原商城目录下上传接口文件即可完成服务端的配置,客户端可定制修改.本文分享android开发MD5加密工具类主要代码,供 ...

  6. ASP原码加密工具介绍

    ASP原码加密工具介绍 总是会有非常多方法暴露ASP的原程序.造成数据库的password 路径都能够轻易被其它人搞到,所以对ASP程序实行加密处理是个不错的解决方法.以下来介绍一个工具假设大家感兴趣 ...

  7. java加密算法--MD5加密和哈希散列带秘钥加密算法源码

    package com.ompa.common.utils; import java.security.MessageDigest; import java.security.NoSuchAlgori ...

  8. jmeter用beanshell调用自己写的jar进行MD5加密

    1.先在eclipse里面写好MD5的加密文件,用eclipse执行一遍,确保文件不会报错 Str2MD5.java 内容如下: package hehe.md5; import java.secur ...

  9. Jmeter用BeanShell Sampler调用java写的jar包进行MD5加密

    [前言] 在工作中,有时候我们请求的参数可能需要加密,比如登录接口中的密码做了加密操作,今天我就给大家介绍一种方法:Jmeter用BeanShell Sampler调用java写的jar包进行MD5加 ...

随机推荐

  1. DRF框架

    1.RESTful规范 1.1 REST风格:表属性状态转移 1.1.1资源:在web中凡是有被引用的必要的都叫资源 1.1.2 URI:统一资源标识符    URI包含URL 1.1.3 URL:统 ...

  2. VUE 之 组件

    组件是为了解决页面布局的. 什么是单页面? 答:整个页面的切换都是在这个页面上进行变化的,没有页面的刷新. 1.全局组件 1.1全局组件流程:    1.创建全局组件======>创建一个Vue ...

  3. eclipse 添加库

    Window ->Preferences ->Java ->Build Path ->User Libraries New,起个名字,如myLibrary add jars,添 ...

  4. Erlang Garbage Collector

    Erlang Garbage Collector | Erlang Solution blog https://www.erlang-solutions.com/blog/erlang-garbage ...

  5. object equal

    package equals; public class EqualsTest { public static void main(String[] args) { Employee alice1 = ...

  6. 开启 J2EE(六)— Servlet之Filter具体解释及乱码处理实例

    版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/akkzhjj/article/details/36471477 定义和功能 Filter:过滤器,它 ...

  7. Spark基本原理

    仅作<Spark快速大数据分析>学习笔记 定义:Spark是一个用来实现 快速 而 通用 的集群计算平台:(通用的大数据处理引擎:) 改进了原Hadoop MapReduce处理模型,体现 ...

  8. bzoj3134: [Baltic2013]numbers

    稍微用脑子想一想,要是一个回文数,要么s[i]==s[i+1]要么s[i]==s[i+2]就可以实锤了 所以多开两维表示最近两位选的是什么数就完了 注意前导0 #include<cstdio&g ...

  9. YTU 2456: 评委打分

    2456: 评委打分 时间限制: 1 Sec  内存限制: 128 MB 提交: 283  解决: 52 题目描述  一个歌唱比赛,比赛每次会从观众中随即抽取几名观众给分(观众至少有5个,分数为0~1 ...

  10. 常用: JS 获取浏览器窗口大小

    // 获取窗口宽度 if (windows.innerWidth) winWidth = windows.innerWidth; else if ((document.body) && ...