自己写的MD5加密原码
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加密原码的更多相关文章
- MD5加密源码!
import java.security.*; class MD5{ public final static String MD5(String s){ char hexDigits[] = {'0' ...
- linux md5 加密字符串和文件方法
linux md5 加密字符串和文件方法 MD5算法常常被用来验证网络文件传输的完整性,防止文件被人篡改.MD5全称是报文摘要算法(Message-Digest Algorithm 5),此算法对任意 ...
- Linux下使用MD5加密BASE64加密
这里以字符串123456为例子,它的md5密文值为:e10adc3949ba59abbe56e057f20f883e 这里以1.txt为需要被加密的文件. 一. 用oppnssl md5 加密字符串和 ...
- MD5加密学习
MD5(Message Digest --消息摘要算法)算法是一种散列(hash)算法(摘要算法,指纹算法),不是一种加密算法(易错),任何长度的任意内容都可以用MD5计算出散列值.主要作用是[验明“ ...
- wemall app商城源码android开发MD5加密工具类
wemall-mobile是基于WeMall的android app商城,只需要在原商城目录下上传接口文件即可完成服务端的配置,客户端可定制修改.本文分享android开发MD5加密工具类主要代码,供 ...
- ASP原码加密工具介绍
ASP原码加密工具介绍 总是会有非常多方法暴露ASP的原程序.造成数据库的password 路径都能够轻易被其它人搞到,所以对ASP程序实行加密处理是个不错的解决方法.以下来介绍一个工具假设大家感兴趣 ...
- java加密算法--MD5加密和哈希散列带秘钥加密算法源码
package com.ompa.common.utils; import java.security.MessageDigest; import java.security.NoSuchAlgori ...
- jmeter用beanshell调用自己写的jar进行MD5加密
1.先在eclipse里面写好MD5的加密文件,用eclipse执行一遍,确保文件不会报错 Str2MD5.java 内容如下: package hehe.md5; import java.secur ...
- Jmeter用BeanShell Sampler调用java写的jar包进行MD5加密
[前言] 在工作中,有时候我们请求的参数可能需要加密,比如登录接口中的密码做了加密操作,今天我就给大家介绍一种方法:Jmeter用BeanShell Sampler调用java写的jar包进行MD5加 ...
随机推荐
- Java对对象的引用 不是 引用调用 而是按值引用 Java不存在引用调用
call by reference Java call by value
- HTML5 and Websocket
在HTML5规范中,我最喜欢的Web技术就是正迅速变得流行的WebSocket API.WebSocket提供了一个受欢迎的技术,以替代我们过去几年一直在用的Ajax技术.这个新的API提供了一个方法 ...
- php网站前台utf-8格式有时会出现莫名其妙的空白行,重新保存下编码格式就可以了
php网站前台utf-8格式有时会出现莫名其妙的空白行,重新保存下编码格式就可以了.
- file类简单操作
file类可表示文件或文件夹 import java.io.File; import java.io.FilenameFilter; import java.io.IOException; impor ...
- IntelliJ IDEA 运行错误:java: Compilation failed: internal java compiler error
错误:java: Compilation failed: internal java compiler error 解决的方法: 文件 --> 设置 : 若没有模块,点击右边的把自己项目的模块添 ...
- codeforces 459 B.Pashmak and Flowers 解题报告
题目链接:http://codeforces.com/problemset/problem/459/B 题目意思:有 n 朵 flowers,每朵flower有相应的 beauty,求出最大的beau ...
- cassandra解析-log写
db/Keyspace.java 中的 apply 函数 中的 commitLogPosition = CommitLog.instance.add(mutation); 这一句确认是写log的代码. ...
- hadoop源码剖析--$HADOOP_HOME/bin/hadoop脚本文件分析
1. $HADOOP_HOME/bin/ hadoop #!/usr/bin/env bash# Licensed to the Apache Software Foundation (ASF) un ...
- 理解Objective-C Runtime (五)协议与分类
Objective-C中的分类允许我们通过给一个类添加方法来扩充它(但是通过category不能添加新的实例变量),并且我们不需要访问类中的代码就可以做到. Objective-C中的协议是普遍存在的 ...
- flask的config配置和给实例化传入参数
灵活性主要体现在配置上,需要什么就配置什么 from flask import Flask app = Flask(__name__) # type:Flask # 调试模式:是否开启调试模式并捕获异 ...