java 加密工具包_加密工具类 - CryptoUtils.java
加密工具類,包含MD5,BASE64,SHA,CRC32的加密與解密方法。
import java.io.BufferedInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.io.UnsupportedEncodingException;
import java.net.URL;
import java.util.zip.CRC32;
import java.util.zip.CheckedInputStream;
import org.apache.commons.codec.binary.Base64;
import org.apache.commons.codec.digest.DigestUtils;
import org.apache.commons.io.IOUtils;
/**
* 加密工具類,包含MD5,BASE64,SHA,CRC32
*
*/
public class CryptoUtils {
private static final String DEFAULT_CHARSET = "UTF-8";
/**
* MD5加密
*
* @param bytes
* an array of byte.
* @return a {@link java.lang.String} object.
*/
public static String encodeMD5(final byte[] bytes) {
return DigestUtils.md5Hex(bytes);
}
/**
* MD5加密,默認UTF-8
*
* @param str
* a {@link java.lang.String} object.
* @return a {@link java.lang.String} object.
*/
public static String encodeMD5(final String str) {
return encodeMD5(str, DEFAULT_CHARSET);
}
/**
* MD5加密
*
* @param str
* a {@link java.lang.String} object.
* @param charset
* a {@link java.lang.String} object.
* @return a {@link java.lang.String} object.
*/
public static String encodeMD5(final String str, final String charset) {
if (str == null) {
return null;
}
try {
byte[] bytes = str.getBytes(charset);
return encodeMD5(bytes);
} catch (UnsupportedEncodingException e) {
throw new RuntimeException(e);
}
}
/**
* SHA加密
*
* @param bytes
* an array of byte.
* @return a {@link java.lang.String} object.
*/
public static String encodeSHA(final byte[] bytes) {
return DigestUtils.sha512Hex(bytes);
}
/**
* SHA加密
*
* @param str
* a {@link java.lang.String} object.
* @param charset
* a {@link java.lang.String} object.
* @return a {@link java.lang.String} object.
*/
public static String encodeSHA(final String str, final String charset) {
if (str == null) {
return null;
}
try {
byte[] bytes = str.getBytes(charset);
return encodeSHA(bytes);
} catch (UnsupportedEncodingException e) {
throw new RuntimeException(e);
}
}
/**
* SHA加密,默認utf-8
*
* @param str
* a {@link java.lang.String} object.
* @return a {@link java.lang.String} object.
*/
public static String encodeSHA(final String str) {
return encodeSHA(str, DEFAULT_CHARSET);
}
/**
* BASE64加密
*
* @param bytes
* an array of byte.
* @return a {@link java.lang.String} object.
*/
public static String encodeBASE64(final byte[] bytes) {
return new String(Base64.encodeBase64String(bytes));
}
/**
* BASE64加密
*
* @param str
* a {@link java.lang.String} object.
* @param charset
* a {@link java.lang.String} object.
* @return a {@link java.lang.String} object.
*/
public static String encodeBASE64(final String str, String charset) {
if (str == null) {
return null;
}
try {
byte[] bytes = str.getBytes(charset);
return encodeBASE64(bytes);
} catch (UnsupportedEncodingException e) {
throw new RuntimeException(e);
}
}
/**
* BASE64加密,默認UTF-8
*
* @param str
* a {@link java.lang.String} object.
* @return a {@link java.lang.String} object.
*/
public static String encodeBASE64(final String str) {
return encodeBASE64(str, DEFAULT_CHARSET);
}
/**
* BASE64解密,默認UTF-8
*
* @param str
* a {@link java.lang.String} object.
* @return a {@link java.lang.String} object.
*/
public static String decodeBASE64(String str) {
return decodeBASE64(str, DEFAULT_CHARSET);
}
/**
* BASE64解密
*
* @param str
* a {@link java.lang.String} object.
* @param charset
* 字符編碼
* @return a {@link java.lang.String} object.
*/
public static String decodeBASE64(String str, String charset) {
try {
byte[] bytes = str.getBytes(charset);
return new String(Base64.decodeBase64(bytes));
} catch (UnsupportedEncodingException e) {
throw new RuntimeException(e);
}
}
/**
* CRC32字節校驗
*
* @param bytes
* an array of byte.
* @return a {@link java.lang.String} object.
*/
public static String crc32(byte[] bytes) {
CRC32 crc32 = new CRC32();
crc32.update(bytes);
return Long.toHexString(crc32.getValue());
}
/**
* CRC32字符串校驗
*
* @param str
* a {@link java.lang.String} object.
* @param charset
* a {@link java.lang.String} object.
* @return a {@link java.lang.String} object.
*/
public static String crc32(final String str, String charset) {
try {
byte[] bytes = str.getBytes(charset);
return crc32(bytes);
} catch (UnsupportedEncodingException e) {
throw new RuntimeException(e);
}
}
/**
* CRC32字符串校驗,默認UTF-8編碼讀取
*
* @param str
* a {@link java.lang.String} object.
* @return a {@link java.lang.String} object.
*/
public static String crc32(final String str) {
return crc32(str, DEFAULT_CHARSET);
}
/**
* CRC32流校驗
*
* @param input
* a {@link java.io.InputStream} object.
* @return a {@link java.lang.String} object.
*/
public static String crc32(InputStream input) {
CRC32 crc32 = new CRC32();
CheckedInputStream checkInputStream = null;
int test = 0;
try {
checkInputStream = new CheckedInputStream(input, crc32);
do {
test = checkInputStream.read();
} while (test != -1);
return Long.toHexString(crc32.getValue());
} catch (IOException e) {
e.printStackTrace();
throw new RuntimeException(e);
}
}
/**
* CRC32文件唯一校驗
*
* @param file
* a {@link java.io.File} object.
* @return a {@link java.lang.String} object.
*/
public static String crc32(File file) {
InputStream input = null;
try {
input = new BufferedInputStream(new FileInputStream(file));
return crc32(input);
} catch (FileNotFoundException e) {
e.printStackTrace();
throw new RuntimeException(e);
} finally {
IOUtils.closeQuietly(input);
}
}
/**
* CRC32文件唯一校驗
*
* @param url
* a {@link java.net.URL} object.
* @return a {@link java.lang.String} object.
*/
public static String crc32(URL url) {
InputStream input = null;
try {
input = url.openStream();
return crc32(input);
} catch (IOException e) {
e.printStackTrace();
throw new RuntimeException(e);
} finally {
IOUtils.closeQuietly(input);
}
}
}
java常用加密和解密工具類EncryptUtil.java
package cn.util; import java.io.UnsupportedEncodingException; import java.security.MessageDigest; im ...
java 加密工具類(MD5、RSA、AES等加密方式)
1.加密工具類encryption MD5加密 import?org.apache.commons.codec.digest.DigestUtils; /** *?MD5加密組件 * *?@autho ...
Java AES 加密工具類
package com.microwisdom.utils; import java.security.NoSuchAlgorithmException; import java.security.S ...
java MD5Utils 加密工具類
package com.sicdt.library.core.utils; import java.io.File; import java.io.FileInputStream; import ja ...
android開發MD5加密工具類(一)
MD5加密工具類整理: package com.gzcivil.utils; import java.io.UnsupportedEncodingException; import java.secu ...
wemall app商城源碼android開發MD5加密工具類
wemall-mobile是基于WeMall的android app商城,只需要在原商城目錄下上傳接口文件即可完成服務端的配置,客戶端可定制修改.本文分享android開發MD5加密工具類主要代碼,供 ...
App開發流程之加密工具類
科技優家 2016-09-08 18:10 從這篇記錄開始,記錄的都算是干貨了,都是一些編程日常的積累. 我建議先將基礎的工具加入項目,后續的開發效率會呈指數增長.如果在專注功能開發過程中,才發現缺少 ...
Java日期工具類,Java時間工具類,Java時間格式化
Java日期工具類,Java時間工具類,Java時間格式化 >>>>>>>>>>>>>>>>>&g ...
Java 通過Xml導出Excel文件,Java Excel 導出工具類,Java導出Excel工具類
Java 通過Xml導出Excel文件,Java Excel 導出工具類,Java導出Excel工具類 ============================== ?Copyright?蕃薯耀 20 ...
隨機推薦
MS SQL 兩種分頁
------ row number ---------- ------ row number ---------- declare @pageSize int,@pageIndex int ; sel ...
Android Studio使用百度地圖示例BaiduMapsApiASDemo
Android Studio使用百度地圖示例BaiduMapsApiASDemo 用自己AVD下的debug.keystore替換掉項目中的debug.keystore 生成自己的簽名 同樣的方法生成 ...
wap上傳圖片跨域發送post請求
wap和接口交互是跨域請求,一般只能通過Jsonp來進行數據的吞吐,然而jsonp只是GET請求,不能發送post請求,所以會對項目需求有所限制. 需求:wap跨域通過接口上傳圖片. 條件:接口是C# ...
LabVIEW設計模式系列——case結構模擬事件結構
標準:1.所有按鈕的機械動作必須都用釋放時觸發或者單擊時觸發,這是為了保證僅僅觸發一次動作. 標準:1.使用簡單的case結構模擬事件結構.
Android開發實現透明通知欄
這個特性是andorid4.4支持的,最少要api19才可以使用,也就是說如果Android的機子是低于4.4,沉浸通知欄是沒有效果的.下面介紹一下使用的方法,非常得簡單. public void i ...
selenium和pythond的區別
selenium和pythond的區別 天宇6169 | 瀏覽 137 次 2016-03-18 10:25 2016-03-18 12:24 最佳答案 ? selenium ide是用來錄制的!大概 ...
HTTP 協議
HTTP 協議對應 Web 開發者來說都必須要了解的,無論技術背景或首選編程語言是什么,"請求-響應" 對話是驅動 Web 上通信的基礎. HTTP 概述 HTTP 協議是 Hyp ...
SQLServer 創建服務器和數據庫級別審計
概述 在上一篇文章中已經介紹了審計的概念:本篇文章主要介紹如何創建審計,以及該收集哪些審核規范. 一.常用的審核對象 1.1.服務器審核對象 1.FAILED_LOGIN_GROUP( Audit L ...
前端面試題總結二(js原型繼承)
今天這篇文章整理了JS原型和繼承的一些知識點,面試的時候 ?基!本!都!會!問!還不快認真閱讀下文,看看你還有哪些知識點需要掌握吧~ 1.原型鏈 基本思想:利用原型讓一個引用類型繼承另外一個引用類型的 ...
[經驗交流] 試用基于 influxdb+kapacitor 的監控系統
2017年10月16日: 使用中發現kapacitor的ui過于簡單,不能滿足實際工作需要,現已切換到grafana --------- 兩個月前試用了基于 elasticsearch + xpack ...
總結
以上是生活随笔為你收集整理的java 加密工具包_加密工具类 - CryptoUtils.java的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: mike21 matlab tools,
- 下一篇: android800版本怎么隐藏软件,小