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.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");
} }

MD5加密算法(信息摘要算法)、Base64算法的更多相关文章

  1. java单向加密算法小结(1)--Base64算法

    从这一篇起整理一下常见的加密算法以及在java中使用的demo,首先从最简单的开始. 简单了解 Base64严格来说并不是一种加密算法,而是一种编码/解码的实现方式. 我们都知道,数据在计算机网络之间 ...

  2. 信息摘要算法之一:MD5算法解析及实现

    MD5即Message-Digest Algorithm 5(信息-摘要算法5),用于确保信息传输完整一致.是计算机广泛使用的杂凑算法之一(又译摘要算法.哈希算法),主流编程语言普遍已有MD5实现. ...

  3. 详解 MD5 信息摘要算法

    对于软件研发人员来说 MD5 不是一个陌生的词汇,平时的软件研发中,经常使用 MD5 校验消息是否被篡改.验证文件完整性,甚至将MD5当作加密算法使用. MD5虽不陌生,但不是所有研发人员都了解其算法 ...

  4. MD5( 信息摘要算法)的概念原理及python代码的实现

    简述: message-digest algorithm 5(信息-摘要算法).经常说的“MD5加密”,就是它→信息-摘要算法. md5,其实就是一种算法.可以将一个字符串,或文件,或压缩包,执行md ...

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

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

  6. c++Builder XE6 MD5 加密算法 BASE64 URL 编码

    xe6,xe7 BASE64XE6 MD5 加密算法Delphifunction MD5(const texto: string): string; var idmd5: TIdHashMessage ...

  7. Java学习---MD5加密算法

    前言 在我们日常的程序开发中,或多或少会遇到一些加密/解密的场景,比如在一些接口调用的过程中,我们(Client)不仅仅需要传递给接口服务(Server)必要的业务参数,还得提供Signature(数 ...

  8. 信息摘要算法 MessageDigestUtil

    package com.xgh.message.digest.test; import java.math.BigInteger; import java.security.MessageDigest ...

  9. Java MD5加密算法学习

    MD5,即"Message-Digest Algorithm 5(信息-摘要算法)",它由MD2.MD3.MD4发展而来的一种单向函数算法(也就是HASH算法),它是国际著名的公钥 ...

随机推荐

  1. 关闭discuzX3.2注册页面的注册邮箱验证

    论坛升级后发现注册用户在输入任何邮箱email时,一直提示email 地址无效.用firephp跟踪发现:随机生成的email的后缀是@localhost! 找到原因,修改如下: //原来代码 if( ...

  2. JS中substring与substr的区别

    Substring: 该方法可以有一个参数也可以有两个参数. (1)  一个参数: 示例: var str=“Olive”: str.substring(3); 结果:“ve” 说明:当substri ...

  3. Elasticsearch搜索之explain评分分析

    Lucene的IndexSearcher提供一个explain方法,能够解释Document的Score是怎么得来的,具体每一部分的得分都可以详细地打印出来.这里用一个中文实例来纯手工验算一遍Luce ...

  4. 在c++中,标准输入string时cin 与getline两个函数之间的区别

    cin: cin函数是标准库的输入函数,在读取string时遵循以下规则: 1)读取并忽略开头所有的空白符(包括空格.换行符.制表符). 2)读取字符直到遇到空白符,读取终止. 例如: 当输入的是“  ...

  5. xmlplus 组件设计系列之三 - 文本框

    文本框是页面中最常用的输入组件,它的默认使用方式如下: <input type='text'/> 当然,这里的 `type='text' 可以略去不写.大部分情况下,使用默认的文本框作为输 ...

  6. Java程序i学习中各阶段的建议

    第一部分:对于尚未做过Java工作的同学,包括一些在校生以及刚准备转行Java的同学. 一.Java基础 首先去找一个Java的基础教程学一下,这里可以推荐一个地址,或者你也可以参照这个地址上去找相应 ...

  7. easyUI中datagrid的使用

    easyUI中的datagrid数据表格经常被用到,结合项目中的使用情况,总结一下datagrid使用中需要注意的一些问题.使用datagrid展示数据,需要在html.css.js中都要编写代码,h ...

  8. Eclipse显示内存占用

  9. bzoj2884 albus就是要第一个出场

    Description 已知一个长度为n的正整数序列A(下标从1开始), 令 S = { x | 1 <= x <= n }, S 的幂集2^S定义为S 所有子集构成的集合.定义映射 f ...

  10. 使用ioctl向linux内核传递参数的方法实例

    该篇实例是摘自网络(无法追根溯源倒低是哪位"前"辈写的了) 一.应用层 uint16 data16; if ((fd = socket(AF_INET, SOCK_STREAM, ...