password、文件MD5加密,passwordsha256、sha384、sha512Hex等加密
package encryption;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.OutputStream;
import java.io.UnsupportedEncodingException;
import java.security.MessageDigest;
import java.util.Arrays; import org.apache.commons.codec.binary.Base64OutputStream;
import org.apache.commons.codec.digest.DigestUtils;
import org.apache.commons.codec.digest.MessageDigestAlgorithms; import sun.misc.BASE64Decoder;
import sun.misc.BASE64Encoder;
/**
* 加密工具类
* @author wangzg
* @Date 2014-7-25
* @Need commons-codec-*.*.jar
*/
public class Encryption { /**
* @Title: main
* @Description:
* @param:
* @return void
* @user: wangzg
* @Date:2014-7-25
* @throws
*/
public static void main(String[] args) {
String strSource = "admin"; String str = getMd5(strSource);
System.out.println(strSource+",length:"+str.length()+",md5:"+str);
str = getSha1(strSource);
System.out.println(strSource+",length:"+str.length()+",Sha1:"+str);
str = getSha256(strSource);
System.out.println(strSource+",length:"+str.length()+",Sha256:"+str);
str = getSha384(strSource);
System.out.println(strSource+",length:"+str.length()+",Sha384:"+str);
str = getSha512(strSource);
System.out.println(strSource+",length:"+str.length()+",Sha512:"+str); digestFile("doc\\1.txt",MessageDigestAlgorithms.MD5); String target = getBase64(strSource);
System.out.println(strSource);
System.out.println(target);
System.out.println(getFromBase64(target)); } /**
* MD5加密,返回32位十六进制字符串
* @Title: getMD5
* @Description:
* @param:
* @return String
* @user: wangzg
* @Date:2014-7-25
* @throws
*/
public static String getMd5(String source){
return DigestUtils.md5Hex(source);
} /**
* sha1加密,返回40位十六进制字符串
* @Title: getSha1
* @Description:
* @param:
* @return String
* @user: wangzg
* @Date:2014-7-25
* @throws
*/
public static String getSha1(String source){
return DigestUtils.sha1Hex(source);
} /**
* sha256加密,返回64位十六进制字符串
* @Title: getSha256
* @Description:
* @param:
* @return String
* @user: wangzg
* @Date:2014-7-25
* @throws
*/
public static String getSha256(String source){
return DigestUtils.sha256Hex(source);
} /**
* sha384加密,返回96位十六进制字符串
* @Title: getSha384
* @Description:
* @param:
* @return String
* @user: wangzg
* @Date:2014-7-25
* @throws
*/
public static String getSha384(String source){
return DigestUtils.sha384Hex(source);
} /**
* sha512加密,返回128位十六进制字符串
* @Title: getSha512
* @Description:
* @param:
* @return String
* @user: wangzg
* @Date:2014-7-25
* @throws
*/
public static String getSha512(String source){
return DigestUtils.sha512Hex(source);
} /**
* 文件加密
* @Title: digestFile
* @Description:
* @param:filename:加密文件,algorithm:加密算法
* @return void
* @user: wangzg
* @Date:2014-7-25
* @throws
*/
public static void digestFile(String filename, String algorithm) {
byte[] b = new byte[1024 * 4];
int len = 0;
FileInputStream fis = null;
FileOutputStream fos = null;
try {
MessageDigest md = MessageDigest.getInstance(algorithm);
fis = new FileInputStream(filename);
while ((len = fis.read(b)) != -1) {
md.update(b, 0, len);
}
byte[] digest = md.digest();
//System.out.println(Arrays.toString(digest));
StringBuffer fileNameBuffer = new StringBuffer(128).append(filename).append(".").append(algorithm);
fos = new FileOutputStream(fileNameBuffer.toString());
OutputStream encodedStream = new Base64OutputStream(fos);
encodedStream.write(digest);
encodedStream.flush();
encodedStream.close();
} catch (Exception e) {
System.out.println("Error computing Digest: " + e);
} finally {
try {
if (fis != null)
fis.close();
if (fos != null)
fos.close();
} catch (Exception ignored) {
}
}
} /**
* Base64加密
* @Title: getBase64
* @Description:
* @param:
* @return String
* @user: wangzg
* @Date:2014-7-25
* @throws
*/
public static String getBase64(String str) {
byte[] b = null;
String s = null;
try {
b = str.getBytes("utf-8");
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
if (b != null) {
s = new BASE64Encoder().encode(b);
}
return s;
} /**
* Base64解密
* @Title: getFromBase64
* @Description:
* @param:
* @return String
* @user: wangzg
* @Date:2014-7-25
* @throws
*/
public static String getFromBase64(String s) {
byte[] b = null;
String result = null;
if (s != null) {
BASE64Decoder decoder = new BASE64Decoder();
try {
b = decoder.decodeBuffer(s);
result = new String(b, "utf-8");
} catch (Exception e) {
e.printStackTrace();
}
}
return result;
} }
password、文件MD5加密,passwordsha256、sha384、sha512Hex等加密的更多相关文章
- 使用apache htpasswd生成加密的password文件,并使用.htaccess控制文件夹訪问
htpasswd 是apache的小工具.在apache安装文件夹bin下可找到. Usage: htpasswd [-cmdpsD] passwordfile username htpasswd - ...
- MD5工具类,提供字符串MD5加密、文件MD5值获取(校验)功能
MD5工具类,提供字符串MD5加密(校验).文件MD5值获取(校验)功能 : package com.yzu.utils; import java.io.File; import java.io.Fi ...
- 使用crypto模块实现md5加密功能(解决中文加密前后端不一致的问题)
正常情况下使用md5加密 var crypto = require('crypto'); var md5Sign = function (data) { var md5 = crypto.create ...
- C# 计算文件MD5
因工作需要对文件进行是否被修改判断,整理的一段生成文件MD5码的代码: 1: public class FileHelper 2: { 3: /// <summary> 4: /// 对文 ...
- C#获取文件MD5字符串
备注 哈希函数将任意长度的二进制字符串映射为固定长度的小型二进制字符串.加密哈希函数有这样一个属性:在计算不大可能找到散列为相同的值的两个不同的输入:也就是说,两组数据的哈希值仅在对应的数据也匹配时才 ...
- (转)DES、RSA、MD5、SHA、随机生成加密与解密
一.数据加密/编码算法列表 常见用于保证安全的加密或编码算法如下: 1.常用密钥算法 密钥算法用来对敏感数据.摘要.签名等信息进行加密,常用的密钥算法包括: DES(Data Encr ...
- 利用openssl进行BASE64编码解码、md5/sha1摘要、AES/DES3加密解密
国内私募机构九鼎控股打造APP,来就送 20元现金领取地址:http://jdb.jiudingcapital.com/phone.html内部邀请码:C8E245J (不写邀请码,没有现金送)国内私 ...
- ashx实现文件下载以及文件MD5码测试
cs using System; using System.Collections.Generic; using System.Linq; using System.Web; using System ...
- Java 获取 文件md5校验码
讯雷下载的核心思想是校验文件的md5值,两个文件若md5相同则为同一文件. 当得到用户下载某个文件的请求后它根据数据库中保留的文件md5比对出拥有此文件的url, 将用户请求挂接到此url上并仿造一个 ...
- JAVA中获取文件MD5值的四种方法
JAVA中获取文件MD5值的四种方法其实都很类似,因为核心都是通过JAVA自带的MessageDigest类来实现.获取文件MD5值主要分为三个步骤,第一步获取文件的byte信息,第二步通过Messa ...
随机推荐
- pychrame更换默认以unittest执行或取消单元测试框架执行
选择某个测试框架运行脚本 File-> Settings -> Tools -> Python Integrated Tools -> Default test runner ...
- Linux学习笔记:scp远程拷贝文件
scp是secure copy的简写,用于Linux下进行远程拷贝文件的命令,类似的有cp,不过cp仅在本机上进行拷贝不能跨服务器. 命令格式: scp [参数] [原路径] [目标路径] -q 不显 ...
- Ubuntu 下安装LEMP环境 实战
---恢复内容开始--- 1.nginx的服务端的安装 打开命令行终端,在终端输入,sudo apt-get install nginx 回车即开始安装 kxlc-t@ubuntu:~$ sudo ...
- ERP产品销售发货判断库存功能(四十二)
产品数量的前端(键盘抬起的事件): <td> <input type="text" name="proCount" onkeyup=" ...
- php 发送超大数据处理
set_time_limit(0);//设置永不超时 ignore_user_abort(); //设置客户端断开,继续处理 //总数 $allusercount= $this->gamedb_ ...
- [转]win7远程连接ubuntu14.04的相关配置,解决连接时灰屏
如何设置可以远程操作 安装必要的远程桌面的软件:xfce,xrdp,vnc4server sudo apt-get update sudo apt-get install xfce4 sudo apt ...
- 【LOJ】#2187. 「SHOI2014」三叉神经树
题解 可以发现每次修改的是这个点往上一条连续的链,如果我要把1改成0,需要满足这一段往上的一部分都有两个1 如果我要把0改成1,需要满足这一段往上的部分有两个0 对于每个点记录1的个数,发现我们只会把 ...
- 093实战 Nginx日志切割,以及脚本上传nginx的切割日志
一:日志切割步骤 命令都在root下进行 1.创建目录 mkdir -p /etc/opt/modules/bin ## 创建文件夹 2.上传cut 3.观察目录 4.修改的cut文件 5.检测 需要 ...
- 《Gradle权威指南》--Gradle构建脚本基础
No1: 设置文件默认名是setting.gradle,放在根目录下,大多数作用都是为了配置子工程 No2: 一个Project包含很多个Task.Task就是一个操作,一个原子性的操作.其实它是Pr ...
- poj2186-Popular Cows【Tarjan】+(染色+缩点)(经典)
<题目链接> 题目大意: 有N(N<=10000)头牛,每头牛都想成为most poluler的牛,给出M(M<=50000)个关系,如(1,2)代表1欢迎2,关系可以传递,但 ...