转载请注明出处:
http://renjie120.iteye.com/
常见的两个字符串加密方法:base64用于邮件主体内容加密,MD5是使用很多的加密方法.
1.base64
package com.lsframe.util;
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
public class Base64 {
private static sun.misc.BASE64Encoder encoder = new sun.misc.BASE64Encoder();
private static sun.misc.BASE64Decoder decoder = new sun.misc.BASE64Decoder();
/**
* base64加密字符串.
*
* @param oldStr
* @return
*/
public static String encode(String oldStr) {
return encoder.encode(oldStr.getBytes());
}
/**
* base64解密字符串.
* @param oldStr
* @return
* @throws IOException
*/
public static String decode(String oldStr) throws IOException {
return new String(decoder.decodeBuffer(oldStr));
}
/**
* base64编码输入流.
* @param inputStream 输入流
* @param outputStream 输出流
* @throws IOException
*/
public static void encode(InputStream inputStream, OutputStream outputStream)
throws IOException {
encoder.encode(inputStream, outputStream);
inputStream.close();
outputStream.close();
}
/**
* base64解密输入流.
* @param inputStream
* @param outputStream
* @throws IOException
*/
public static void decode(InputStream inputStream, OutputStream outputStream)
throws IOException {
decoder.decodeBuffer(inputStream, outputStream);
inputStream.close();
outputStream.close();
}
/**
* base64加密文件.
* @param inFileName 源文件
* @param outFileName 新的文件
* @throws IOException
*/
public static void encode(String inFileName,String outFileName) throws IOException{
File oldFile = new File(inFileName);
File newFile = new File(outFileName);
InputStream input = new BufferedInputStream(
new FileInputStream(oldFile));
OutputStream out = new BufferedOutputStream(
new FileOutputStream(newFile));
Base64.encode(input, out);
}
/**
* base64解密文件.
* @param inFileName 源文件
* @param outFileName 新的文件
* @throws IOException
*/
public static void decode(String inFileName,String outFileName) throws IOException{
File oldFile = new File(inFileName);
File newFile = new File(outFileName);
InputStream input = new BufferedInputStream(
new FileInputStream(oldFile));
OutputStream out = new BufferedOutputStream(
new FileOutputStream(newFile));
Base64.decode(input, out);
}
public static void main(String[] a) throws IOException {
Base64.encode("E:\\workplace\\testMyFrame\\bb.mp3","d:\\hah.base64");
Base64.decode("d:\\hah.base64","d:\\ddd.mp3");
System.out.println("ok");
}
}
2.MD5的加密方法:
public class MD5 {
public String getMD5(byte[] source) {
String s = null;
char hexDigits[] = { // 用来将字节转换成 16 进制表示的字符
'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd',
'e', 'f' };
try {
java.security.MessageDigest md = java.security.MessageDigest
.getInstance("MD5");
md.update(source);
// MD5 的计算结果是一个 128 位的长整数,
byte tmp[] = md.digest();
// 用字节表示就是 16 个字节
char str[] = new char[16 * 2]; // 每个字节用 16 进制表示的话,使用两个字符,
// 所以表示成 16 进制需要 32 个字符
int k = 0; // 表示转换结果中对应的字符位置
for (int i = 0; i < 16; i++) { // 从第一个字节开始,对 MD5 的每一个字节
// 转换成 16 进制字符的转换
byte byte0 = tmp[i]; // 取第 i 个字节
str[k++] = hexDigits[byte0 >>> 4 & 0xf]; // 取字节中高 4 位的数字转换,
// >>> 为逻辑右移,将符号位一起右移
str[k++] = hexDigits[byte0 & 0xf]; // 取字节中低 4 位的数字转换
}
s = new String(str); // 换后的结果转换为字符串
} catch (NoSuchAlgorithmException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
return s;
}
public static void main(String[] args) {
MD5 md5 = new MD5();
System.out.println(md5.getMD5("ABC".getBytes()));
System.out.println(md5.getMD5("ABC".getBytes()));
}
}
分享到:
相关推荐
Java面试题集锦6:华为面试题 管理资料.pdfJava面试题集锦6:华为面试题 管理资料.pdfJava面试题集锦6:华为面试题 管理资料.pdfJava面试题集锦6:华为面试题 管理资料.pdfJava面试题集锦6:华为面试题 管理资料.pdf...
java中字符串常用函数 看了就知道 很好用 速查
JS自带函数,concat,indexOf,将整个字符串转成小写字母,通过将字符串划分成子串,将一个字符串做成一个字符串数组。
C#程序,用于对数据流,字节流,字符串进行加解密,可以自写加密和解密算法
常用SQL字符串函数集锦.
Java笔试题集锦/JAVA 基础/servlet笔试题目
这个加解密源码几乎包括了世界上几个最著名的加密算法:Blowfish、CryptAPI、DES、Gost、RC4、XOR、Skipjack、TEA、Twofish,曾获源码5星推荐 Business-strengthCompression.zip: 商用压缩+加密程序 ...
MD5的实际应用是对一段信息(字节串)产生Fingerprint(指纹码), 可以防止程序被他人“篡改”。其广泛用于加密和解密技术上...另外也可用作杀毒校验技术的一部分,使得重复扫描速度加快了N倍。 MD5较验工具只是EXCEL...
Java 面试 最新 最全 算法 框架 语言;core java career essentials,542页完整版
JAVA案例开发集锦:分六个压缩卷,请都下载了再解压 第一压缩卷 下完后请把文件名改为:JAVA案例开发集锦[1].part1.rar.rar
Java编程精选集锦
java与数据库等5个案例 网吧计费系统等~大家快去学习吧~哈哈,全部源码和注释
Java经典项目集锦
php字符串函数集锦,全是图片,效果一般。但能方便用户使用
介绍sql常用的字符串函数及语法说明 介绍sql常用的字符串函数及语法说明
JAVA精华集锦.JAVA精华集锦.JAVA精华集锦.JAVA精华集锦.JAVA精华集锦.JAVA精华集锦.
555应用集锦 555应用集锦 555应用集锦 555应用集锦
该光盘中有《Java案例开发集锦》一书中的所有案例源程序代码,编译通过的实例类代码和工程文件,以及案例中应用的数据库,并有在案例中涉及的相关Java类文件。配书光盘中全部内容包括: 1. chp1-chp10目录。分别...
JAVA案例开发集锦pdf JAVA案例开发集锦pdf JAVA案例开发集锦pdf
Java编程代码实例集锦.Java编程代码实例集锦.Java编程代码实例集锦.Java编程代码实例集锦.chm