Java使用MD5和BASE64
来源:互联网 发布:js array 长度 编辑:程序博客网 时间:2024/05/21 14:01
0X00 简介
最近经常要在代码中使用到BASE64编码和MD5加密,所以把笔记贴在这里方便自己查找。
在配置postfix邮件服务器的时候发现,收到的邮件正文都是使用BASE64编码过的,所以才了解了一下这种编码。
MD5则是加密常用手段。虽说MD5细究不算加密算法,但是可以用作加密。
0X01 BASE64编码
Base64是一种基于64个可打印字符来表示二进制数据的表示方法。由于2的6次方等于64,所以每6个比特为一个单元,对应某个可打印字符。三个字节有24个比特,对应于4个Base64单元,即3个字节需要用4个可打印字符来表示。它可用来作为电子邮件的传输编码。在Base64中的可打印字符包括字母A-Z、a-z、数字0-9,这样共有62个字符,此外两个可打印符号在不同的系统中而不同。一些如uuencode的其他编码方法,和之后binhex的版本使用不同的64字符集来代表6个二进制数字,但是它们不叫Base64。 ———–维基百科
代码需要 import sun.misc.BASE64Encoder;
public static String encodeing(String str){ byte[] b = null; String s = null; try{ b = str.getBytes("utf-8"); }catch (Exception e){ e.printStackTrace(); } if (b != null){ s = new BASE64Encoder().encode(b); } return s;}
0X02 BASE64解码
代码需要import sun.misc.BASE64Decoder;
public static String decoding(String str){ byte[] b = null; String result = null; if (str != null){ BASE64Decoder decoder = new BASE64Decoder(); try{ b = decoder.decodeBuffer(str); result = new String(b, "utf-8"); }catch (Exception e){ e.printStackTrace(); } } return result; }
0X03 MD5加密
MD5消息摘要算法(英语:MD5 Message-Digest Algorithm),一种被广泛使用的密码散列函数,可以产生出一个128位(16字节)的散列值(hash value),用于确保信息传输完整一致。MD5由罗纳德·李维斯特设计,于1992年公开,用以替换MD4算法。这套算法的程序在 RFC 1321 中被加以规范。
将数据(如一段文字)运算变为另一固定长度值,是散列算法的基础原理。
1996年后被证实存在弱点,可以被加以破解,对于需要高度安全性的数据,专家一般建议改用其他算法,如SHA-1。2004年,证实MD5算法无法防止碰撞,因此无法适用于安全性认证,如SSL公开密钥认证或是数字签名等用途。 ———–维基百科
虽说MD5已经被证明不安全,不过用作实验性的登陆验证还是没有问题的。(其实好多好多网站的密码都是MD5的,不信可以去社工库里看看)
代码需要import java.security.MessageDigest;
public static String getMd5(String text){ try{ MessageDigest md = MessageDigest.getInstance("MD5"); md.update(text.getBytes()); byte b[] = md.digest(); int i; StringBuffer buf = new StringBuffer(""); for (int offset = 0; offset < b.length; offset++){ i = b[offset]; if (i < 0){ i += 256; } if (i < 16){ buf.append("0"); } buf.append(Integer.toHexString(i)); } return buf.toString(); // 32位加密 //return buf.toString().substring(8, 24); // 16位加密 }catch (Exception e){ e.printStackTrace(); return null; } }
- Java使用MD5和BASE64
- vue中使用base64和md5
- Base64和MD5加密
- MD5和Base64
- MD5和Base64
- Base64 和 MD5 加密
- md5和base64记录
- MD5和Base64
- MD5和Base64
- Java使用commons codec进行Md5,sha1,base64加密
- iOS中的BASE64编码和MD5编码使用
- 编码和加密算法的使用(MD5、Base64、DES、RSA)
- JAVA中MD5加密和Base64加密解密算法
- MD5加密 Base64加密和解密算法 java
- Base64以及Md5的使用
- Base64以及Md5的使用
- java加密 base64,md5,sha
- java MD5 加密 Base64 编码
- Java Socket 编程
- Anaconda version `GFORTRAN_1.4' not found
- 方格填数
- Unity3d5.0中rigidbody无法访问velocity
- MongoDB简介
- Java使用MD5和BASE64
- fir.im Weekly - 你与优秀源码之间只差一个 Star
- 禁止apache显示目录索引的常见方法(apache禁止列目录)
- HiHoCoder_#1338 : A Game
- iOSweex集成入门,weex demo如何运行,以及如何修改(三)
- SpringMVC是单例的,高并发情况下,如何保证性能的?
- socket 简单demo
- 因为我们是分配一个数!
- Buffer cache和page cache的区别