日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

java 加密工具包_加密工具类 - CryptoUtils.java

發布時間:2023/12/31 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。