1 什么是MD5

  信息摘要算法,可以将字符进行加密,每个加密对象在进行加密后都是等长的

  应用场景:将用户密码经过MD5加密后再存储到数据库中,这样即使是超级管理员也没有能力知道用户的具体密码是多少;因为MD5加密后的数据时不能够被解密的

  步骤:

    》获取MessageDigest对象

      MessageDigest md5 = MessageDigest.getInstance("MD5");

      注意:import java.security.MessageDigest;

    》通过MessageDigest对象的方法对字符数组进行加密

      byte [] output = md5.digest(str.getBytes());

      注意:digest方法的参数和返回值都是字符数组类型

    》问题:通过加MD5加密后的数据时乱码,怎么让他变成不是乱码

    》解决:通过Base64算法

2 什么是Base64

  对字符串进行显示处理,即:用常见的64个字符来对字符进行显示,从而有效地避免了乱码问题

  应用场景:防止乱码的产生

  步骤:

    》直接使用Base64类中的静态方法

      str_output = Base64.encodeBase64String(output);

      注意:encodeBase64String方法的参数是字符数组,返回值是字符串

      注意:import org.apache.tomcat.util.codec.binary.Base64;

3 MD5 和 Base64 的综合应用

 package cn.xiangxu.cloudNote.util;

 import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException; import org.apache.tomcat.util.codec.binary.Base64; /**
* 工具类:MD5加密算法
* @author Administrator
*
*/
public class NoteUtil {
/**
* MD5加密算法,实现将一个字符串进行MD5加密,然后用64个常见的字符进行显示
* @param src 待加密的字符串
* @return 返回一个字符串,这个字符串是加密后进过base64处理的结果
*/
public static String md5(String src) {
try {
// 创建MessageDigest对象
MessageDigest md = MessageDigest.getInstance("MD5");
// 利用MessageDigest对象的方法对字符数组进行加密
byte [] output = md.digest(src.getBytes());
// 将加密后的字符数组转换成字符串后输出
// return new String(output); // 利用base64对加密数据进行处理(即:利用基本的64个字符来显示加密后的数据,并将其转化成字符串)
String ret = Base64.encodeBase64String(output);
return ret;
} catch (NoSuchAlgorithmException e) {
e.printStackTrace();
throw new Md5Exception("加密失败", e);
}
// return src; // 对异常进行抛出后就不能够执行到这行代码了 【捕获到异常并抛出落后就不能执行到这一行啦】
}
}

MD5 和 Base64 综合应用

 package cn.xiangxu.cloudNote.util;

 /**
* MD5加密算法运行异常类
* @author 三少
*
*/
public class Md5Exception extends RuntimeException { private static final long serialVersionUID = 5316676928450756806L; public Md5Exception(String message, Throwable cause) {
super(message, cause);
// TODO Auto-generated constructor stub
} }

MD5异常类

4 MD5 和 Base64 综合应用简例

 package cn.xiangxu.testNote.test;

 import java.security.MessageDigest;

 import org.apache.tomcat.util.codec.binary.Base64;

 public class Test {
public static String md5(String str) throws Exception {
try {
MessageDigest md5 = MessageDigest.getInstance("MD5");
System.out.println("md5对象:" + md5);
System.out.println("原始数据:" + str); byte [] output = md5.digest(str.getBytes());
String str_output = new String(output);
System.out.println("加密后数据:" + str_output); str_output = Base64.encodeBase64String(output);
System.out.println("处理后的加密数:" + str_output);
} catch (Exception e) {
e.printStackTrace();
throw new Exception(e);
}
return null;
} public static void main(String[] args) throws Exception {
Test.md5("dd");
} }

03 MD5加密、Base64处理的更多相关文章

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

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

  2. Js中 md5 sha1 base64 加密

    js的3中加密方式: .sha1加密,加密性高 调用: var sha = hex_sha1(str); .base64加密 调用: var b = new Base64(); var str = b ...

  3. MD5加密、时间戳转换、base64算法加密、解密

    #region MD5加密 /// <summary> /// MD5加密 /// </summary> /// <param name="str"& ...

  4. IOS开发之—— 各种加密的使用(MD5,base64,DES,AES)

    基本的单向加密算法: BASE64 严格地说,属于编码格式,而非加密算法 MD5(Message Digest algorithm 5,信息摘要算法)SHA(Secure Hash Algorithm ...

  5. MD5加密,Base64加密/解密,AES加密/解密

    1.从github上下载GTMBase64-master和AESCrypt-ObjC-master导入工程,如下图所示. 2.使用前的配置及注意事项: (1) 在build phases中的GTMBa ...

  6. iOS经常使用加密方式(MD5,AES,BASE64)与网络数据安全

    演示样例项目下载地址  https://github.com/cerastes/Encryption 1MD5 创建MD5类 #import <Foundation/Foundation.h&g ...

  7. IOS常见的加密方法,常用的MD5和Base64

    iOS代码加密常用加密方式 iOS代码加密常用加密方式,常见的iOS代码加密常用加密方式算法包括MD5加密.AES加密.BASE64加密,三大算法iOS代码加密是如何进行加密的,且看下文 MD5 iO ...

  8. js的常见的三种密码加密方式-MD5加密、Base64加密和解密和sha1加密详解总结

    写前端的时候,很多的时候是避免不了注册这一关的,但是一般的注册是没有任何的难度的,无非就是一些简单的获取用户输入的数据,然后进行简单的校验以后调用接口,将数据发送到后端,完成一个简单的注册的流程,那么 ...

  9. python接口自动化测试二十七:加密与解密MD5、base64

    # MD5加密 # 由于MD5模块在python3中被移除# 在python3中使用hashlib模块进行md5操作 import hashlib def MD5(str): # 创建md5对象 hl ...

随机推荐

  1. java对Hbase的基本操作

     1.新建一个普通java项目,把${hbase}/lib/目录下的jar包全部导入 2.导出jar文件如下 3.运行 注意:需要先把jar文件导入到hbase路径里去,然后运行相应的类 4.查看数据 ...

  2. react-webpack(一)

    要让webpack知道这就是我们的index.html入口文件,并且我们不需要手动引入打包后的js文件,需要安装html-webpack-plugin npm install html-webpack ...

  3. linux 缺少libxxx.a 静态链接库

    首先去官方网站下载gdb的源码包,我下载的7.4.1版本的源码包,解压开来,进入到源码包的根目录下.对于一个源码包,拿到手里首先要阅读的就是README,然后看一下INSTALL文件,这个文件里编译源 ...

  4. OpenCV - win7+vs2013(2012)+opencv3.0.0 环境配置 (以及配置技巧)

    1. opencv 3.0.0 库下载地址, 这里的版本是3.0.0,其他的版本配置可能不一样,请大家注意. http://sourceforge.net/projects/opencvlibrary ...

  5. python沉淀之路~~整型的属性

    python的基础知识: 基本数据类型:int   str   list   tuple   dict   bool 一.整型的属性功能 1.工厂方法将字符串转换成整型 a = " b = ...

  6. 消息队列mq总结(重点看,比较了主流消息队列框架)

    转自:http://blog.csdn.net/konglongaa/article/details/52208273 http://blog.csdn.net/oMaverick1/article/ ...

  7. nodejs express mysql

  8. Logstash详解之——input模块

    原文地址 Logstash由三个组件构造成,分别是input.filter以及output.我们可以吧Logstash三个组件的工作流理解为:input收集数据,filter处理数据,output输出 ...

  9. 多版本python管理miniconda(集成了virtualenv和pip功能)

    miniconda下载地址: https://conda.io/docs/user-guide/install/index.html Installing on Linux Download the ...

  10. 静默安装Azure CLI

    Azure的CLI目前已经是基于Python的2.0版本.其信息在下面的链接可以找到: https://github.com/Azure/azure-cli 其安装方法可以根据网站上描述的命令实现: ...