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 ...
随机推荐
- linux常用软件安装,常用命令
jdk [root@localhost]# tar -zxvf jdk-8u144-linux-x64.tar.gz [root@localhost]# vi /etc/profile 在profil ...
- Flask 环境搭建
引用自:https://www.cnblogs.com/rongtangzi/p/6623122.html #!/bin/env python # _*_coding:utf-8_*_ #!!!!!! ...
- 6-20 Ideal Path uva1599
第一个bfs很快 但是我第一次做还用了结构体 这题完全不需要 反而导致了代码非常乱 输入: 一开始我是用m二维数组储存颜色 vector path来储存路径 但是二维数组的下标是不够用的 ...
- python str,list,tuple转换
1. str转listlist = list(str) 2. list转strstr= ''.join(list) 3. tuple list相互转换tuple=tuple(list)list=l ...
- Flutter常用组件(Widget)解析-ListView
一个可滚动的列表组件 不管在哪,列表组件都尤为重要和常用. 首先来看个例子: import 'package:flutter/material.dart'; void main () => ru ...
- 破解百度云盘MAC下载限速问题
由于电脑更新问题,所以把电脑上的所有东西清除了.突然发现自己以前的东西还都在百度云盘上,但由于MAC 下载百度云盘上的东西只有几K或者几十K,这个网速对于小文件还能忍受,但如果是大文件就无法容忍了. ...
- DataGridView 绑定数据问题及修改值交换列
- Codeforces.700E.Cool Slogans(后缀自动机 线段树合并 DP)
题目链接 \(Description\) 给定一个字符串\(s[1]\).一个字符串序列\(s[\ ]\)满足\(s[i]\)至少在\(s[i-1]\)中出现过两次(\(i\geq 2\)).求最大的 ...
- 如何将Object类型转换成String类型
1. Object.toString() obj.toString() 注意:必须保证Object不是null值,否则将抛出NullPointerException异常. 2. (String)Obj ...
- netty如何知道连接已经关闭,socket心跳,双工?异步?
https://stackoverflow.com/questions/10240694/java-socket-api-how-to-tell-if-a-connection-has-been-cl ...