自己写的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中的文件上传和下载
文件上传原理: 早期的文件上传机制: 在TCP/IP中.最早出现的文件上传机制是FTP.他是将文件由客户端发送到服务器的标准机制. jsp中的文件上传机制: 在jsp编程中不能使用FTP的方法来上传文 ...
- 设置Android Studio工程布局文件的默认布局
每次创建新的工程后,布局文件的的布局总是ConstraintLayout,如何更改? 进入Android Studio安装目录,用文本编辑器打开文件plugins\android\lib\templa ...
- redis10---Setbit 的实际应用
Setbit 的实际应用 场景: 1亿个用户, 每个用户 登陆/做任意操作 ,记为 今天活跃,否则记为不活跃 每周评出: 有奖活跃用户: 连续7天活动,每月评,等等. 思路: Userid dt ac ...
- spring cloud config 属性加解密
首先需要(Java Cryptography Extension (JCE))的支持,下载路径: https://www.oracle.com/technetwork/java/javase/down ...
- sql索引原理以及优化
http://itindex.net/detail/52237-%E7%B4%A2%E5%BC%95-%E5%8E%9F%E7%90%86 http://itindex.net/detail/5171 ...
- easyUI-右键菜单,关闭选项卡
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding= ...
- hdu acm 2191 悼念512汶川大地震遇难同胞——珍惜现在,感恩生活
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2191 题目意思:有 资金 n 和 m 种类型的大米,对第 i 种类型的大米,价格.数量.袋数分别是: ...
- os、sys和shutil模块
运行环境:python3 OS模块:os 模块提供了一个统一的操作系统的接口函数 下面的path指路径的意思 os.stat(file) #查询文件属性操作 os.sep #取代操作系统特定的路径分隔 ...
- web自动化测试的自身特点
1.web页面是出现的元素可能具有不确定性 2.不同操作系统上不同web浏览器之间的兼容性 3.web应用的高并发性和容错性 4.移动设备上web客户端兼容性,旋转下和各种触摸特性
- USACO 回文的路径
传送门 这道题和传纸条在某些方面上非常的相似.不过这道题因为我们要求回文的路径,所以我们可以从中间一条大对角线出发去向两边同时进行DP. 这里就有了些小小的问题.在传纸条中,两个路径一定是同时处在同一 ...