MD5加密算法(信息摘要算法)、Base64算法
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算法的更多相关文章
- java单向加密算法小结(1)--Base64算法
从这一篇起整理一下常见的加密算法以及在java中使用的demo,首先从最简单的开始. 简单了解 Base64严格来说并不是一种加密算法,而是一种编码/解码的实现方式. 我们都知道,数据在计算机网络之间 ...
- 信息摘要算法之一:MD5算法解析及实现
MD5即Message-Digest Algorithm 5(信息-摘要算法5),用于确保信息传输完整一致.是计算机广泛使用的杂凑算法之一(又译摘要算法.哈希算法),主流编程语言普遍已有MD5实现. ...
- 详解 MD5 信息摘要算法
对于软件研发人员来说 MD5 不是一个陌生的词汇,平时的软件研发中,经常使用 MD5 校验消息是否被篡改.验证文件完整性,甚至将MD5当作加密算法使用. MD5虽不陌生,但不是所有研发人员都了解其算法 ...
- MD5( 信息摘要算法)的概念原理及python代码的实现
简述: message-digest algorithm 5(信息-摘要算法).经常说的“MD5加密”,就是它→信息-摘要算法. md5,其实就是一种算法.可以将一个字符串,或文件,或压缩包,执行md ...
- MD5加密、时间戳转换、base64算法加密、解密
#region MD5加密 /// <summary> /// MD5加密 /// </summary> /// <param name="str"& ...
- c++Builder XE6 MD5 加密算法 BASE64 URL 编码
xe6,xe7 BASE64XE6 MD5 加密算法Delphifunction MD5(const texto: string): string; var idmd5: TIdHashMessage ...
- Java学习---MD5加密算法
前言 在我们日常的程序开发中,或多或少会遇到一些加密/解密的场景,比如在一些接口调用的过程中,我们(Client)不仅仅需要传递给接口服务(Server)必要的业务参数,还得提供Signature(数 ...
- 信息摘要算法 MessageDigestUtil
package com.xgh.message.digest.test; import java.math.BigInteger; import java.security.MessageDigest ...
- Java MD5加密算法学习
MD5,即"Message-Digest Algorithm 5(信息-摘要算法)",它由MD2.MD3.MD4发展而来的一种单向函数算法(也就是HASH算法),它是国际著名的公钥 ...
随机推荐
- C/C++常考面试题(一)
这算是一个系列吧,记录一下在准备秋招期间,所准备的C++面试题,望秋招顺利.所有的面试题均来源于各大论坛,网络. C/C++常考面试题(一) 常用的C++数据结构有哪些? vector,序列式容器,相 ...
- 关于 centos 7系统,iptables透明网桥实现【转载请注明】
首先建立网桥:(使用bridge) 示例 桥接eth0 与 eth1 网口 /sbin/modprobe bridge /usr/sbin/brctl addbr br0 /sbin/ifup ...
- Unity Android路径及注意事项
Application.temporaryCachePath==/storage/emulated/0/Android/data/com.***.***/cache Application.persi ...
- git的使用及常用命令(二)
一,把文件放在版本库中 执行 git add XXX文件名 在执行 git commit -m ‘提交注释' 查看状态 git status 如果没有改变文件,nothing to comment ...
- EZChart - 在线图表生成器
朋友写材料时,需要用到一些分析图表,嫌Excel的太丑,就为他写了一个在线图表生成器. 纯静态实现,基于:H5 + Bootstrap + FusionCharts 本地存储使用H5的localSto ...
- python安装pillow模块错误
安装的一些简单步骤就不介绍了,可以去搜索一下,主要就记录下我在安装pillow这一模块遇到的问题 1:安装好pillow后,安装过程没有出错 2:但是在python的IDLE输入from PIL im ...
- 在myeclipse下安装svn插件,出现了Could not generate DH keypair,这么一个错误。
解决方法: window-->preferences-->Team-->SVN-->SVN接口 选择:JavaHL 去https://sliksvn.com/download/ ...
- 【CSS】思考和再学习——关于CSS中浮动和定位对元素宽度/外边距/其他元素所占空间的影响
一.width:auto和width:100%的区别 1.width:100%的作用是占满它的参考元素的宽度.(一般情况下参考元素 == 父级元素,这里写成参考元素而不是父级元素,在下面我会再 ...
- jenkins 设置自动发送邮件
1.测试邮件发送 进入jenkins系统管理-->系统设置做如下配置 1.设置系统管理员邮件地址,这是一个全局变量,意味着所有的jenkins执行的任务,最后都会通过这个邮件地址发送邮件 ...
- Linux 定时任务详解
原文地址:http://edu.codepub.com/2011/0104/28518.php crond分为系统级定时和用户级定时,系统级定时主要编辑/etc/crontab,用户级定时主要利用 ...