MD5和Base64
一. 简述
MD5: 全称为message digest algorithm 5(信息摘要算法), 能够进行加密, 可是不能解密, 属于单向加密, 通经常使用于文件校验
Base64: 把随意序列的8为字节描写叙述为一种不易为人识别的形式, 通经常使用于邮件、http加密. 登陆的username和password字段通过它加密, 能够进行加密和解密.
二. 代码
1. MD5:
public class MD5Utils {
/**
* 使用md5的算法进行加密
* @param plainText 加密明文
* @return 加密密文
*/
public static String getDigest(String plainText) {
byte[] secretBytes = null;
try {
secretBytes = MessageDigest.getInstance("md5").digest(plainText.getBytes());
} catch (NoSuchAlgorithmException e) {
throw new RuntimeException("error happens", e);
}
return new BigInteger(1, secretBytes).toString(16);
}
}
2. Base64:
public class Base64Util {
/**
* 使用Base64进行编码
* @param encodeContent 须要编码的内容
* @return 编码后的内容
*/
public static String encode(String encodeContent) {
if (encodeContent == null) {
return null;
}
BASE64Encoder encoder = new BASE64Encoder();
return encoder.encode(encodeContent.getBytes());
}
/**
* 使用Base64进行编码
* @param encodeContent 须要编码的内容
* @return 编码后的内容
*/
public static String encode(byte[] encodeText) {
return encode(new String(encodeText));
}
/**
* 使用Base64进行解码
* @param encodeContent 须要解码的内容
* @return 解码后的内容
*/
public static String decode(String decodeContent) {
byte[] bytes = null;
if (decodeContent == null) {
return null;
}
try {
bytes = new BASE64Decoder().decodeBuffer(decodeContent);
} catch (IOException e) {
throw new RuntimeException("error happens", e);
} finally {
}
return new String(bytes);
}
}
3. 測试代码:
public class Test {
/**
* 先使用MD5算法加密, 再使用base64算法进行编码
* @param args
*/
public static void main(String[] args) {
String plainText = "pwd";
String encodedPassword = MD5Utils.getDigest(Base64Util.encode(plainText));
System.out.println(encodedPassword);
}
}
为什么使用MD5加密后还要使用Base64编码呢? 用Base64算法编码后得到的是32位长度的字符串, 这样有利于在数据库中进行存储.
版权声明:本文博主原创文章。博客,未经同意不得转载。
MD5和Base64的更多相关文章
- Js中 md5 sha1 base64 加密
js的3中加密方式: .sha1加密,加密性高 调用: var sha = hex_sha1(str); .base64加密 调用: var b = new Base64(); var str = b ...
- 【java】之 apache commons-codec 与Apache Digest demo实例,支持md5 sha1 base64 hmac urlencode
使用commons-codec 进行加密的一些操作 package com.jiepu.ApacheDigest; import java.io.FileInputStream; import org ...
- IOS常见的加密方法,常用的MD5和Base64
iOS代码加密常用加密方式 iOS代码加密常用加密方式,常见的iOS代码加密常用加密方式算法包括MD5加密.AES加密.BASE64加密,三大算法iOS代码加密是如何进行加密的,且看下文 MD5 iO ...
- python接口自动化测试二十七:加密与解密MD5、base64
# MD5加密 # 由于MD5模块在python3中被移除# 在python3中使用hashlib模块进行md5操作 import hashlib def MD5(str): # 创建md5对象 hl ...
- 终端命令对字符串进行sha1、md5、base64、urlencode/urldecode
sha1.md5.base64 mac $ echo -n foo|shasum 0beec7b5ea3f0fdbc95d0dd47f3c5bc275da8a33 - $ 2c26b46b68ffc6 ...
- python的md5和base64加密
在用jmeter测试接口时,有的请求参数会加密,例如,回流接口:http://ip:port/oms-gateway-datareflow-mq/orderReflow/tmsPracticeActi ...
- iOS常用加密方法(aes、md5、base64)
1.代码 iOS常用加密方法(aes.md5.base64) .AES加密 NSData+AES.h文件 // // NSData-AES.h // Smile // // Created by 周 ...
- Java基础---MD5和BASE64
package cn.peter; import sun.misc.BASE64Encoder; import java.io.UnsupportedEncodingException; import ...
- MD5与Base64的思考
MD5加密是对任意长的数据使用MD5哈稀算法散列为4个32位组,若格式化为ASCII字符则为16字符,若格式化16进制表示,则为32字符. (MD5的具体算法请参阅相关书籍和资料) MD5广泛用于数 ...
- IOS开发之—— 各种加密的使用(MD5,base64,DES,AES)
基本的单向加密算法: BASE64 严格地说,属于编码格式,而非加密算法 MD5(Message Digest algorithm 5,信息摘要算法)SHA(Secure Hash Algorithm ...
随机推荐
- Python的TkinterButton做为父窗口
#-*-coding:utf--*- import Tkinter,time,tkMessageBox,sys,BeBigModule class MainFrame: def __init__(se ...
- C:打印菱形(自己的方法)
//-------------------*打印菱形*--------------------- int i,j,k; int n; printf("请输入一个奇数n:"); sc ...
- 有向无环图(DAG)的最小路径覆盖
DAG的最小路径覆盖 定义:在一个有向图中,找出最少的路径,使得这些路径经过了所有的点. 最小路径覆盖分为最小不相交路径覆盖和最小可相交路径覆盖. 最小不相交路径覆盖:每一条路径经过的顶点各不相同.如 ...
- hdu 4007 Dave (2011年大连ACM网络赛)
题意:给定正方形的边长 r ,在平面内寻找正方形可以圈住的点的最大的个数. 分析:先对点排序,然后固定一条边,再平移另一条垂直边,得到点的个数,最后比较大小即可. 注意:不包含正方形倾斜的情况! // ...
- java环境变量设置--编写一年java,竟不会配变量了
java环境变量设置 1.打开我的电脑--属性--高级--环境变量 2.新建系统变量JAVA_HOME 和CLASSPATH 变量名:JAVA_HOME 变量值:C:\Program Files\Ja ...
- HTTP Status 500 - Request processing failed; nested exception is org.springframework.jdbc.BadSqlGram
HTTP Status 500 - Request processing failed; nested exception is org.springframework.jdbc.BadSqlGram ...
- registerWithTouchDispatcher()函数的使用
registerWithTouchDispatcher()函数的使用 registerWithTouchDispatcher()函数主要用于注册Touch事件. 当我们使用this->setTo ...
- PHP计算中文字符串长度 、截取相应中文字符串
PHP计算字符串长度 及其 截取相应中文字符串 计算字符长度: $gouWu = '美日汇http://www.hnzyxok.com/'; echo mb_strlen($gouWu,' ...
- CSS检测的高像素密度屏幕设备
iPhone4尽管是640px解析度,但它的屏幕宽度(device-width)目前只有320px和iPhone3G相同.只是iPhone4S的像素密度2. 然后使用meta viewport什么时候 ...
- java Socket的怪异之处
怪异之一: connect(SocketAddress endpoint):这个方法,尝试连接server端,如果连接不上,就抛出IOException异常.如果连接成功了,就继续执行下一步的代码. ...