JAVA對稱加密算法PBE定義與用法實例分析
本文實例講述了JAVA對稱加密算法PBE定義與用法。分享給大家供大家參考,具體如下:
一 AES、DES和3DES在使用上比較一致
二 PBE算法優(yōu)點
三 PBE介紹
1、PBE:Password Based Encryption 基于口令加密。通過加Salt來增強安全性。
2、對已有算法的包裝
3、JDK和BC的實現(xiàn)
4、通過加Salt來增強安全性
四 常見算法
五代碼實現(xiàn)
package com.imooc.security.pbe; import java.security.Key; import java.security.SecureRandom; import javax.crypto.Cipher; import javax.crypto.SecretKeyFactory; import javax.crypto.spec.PBEKeySpec; import javax.crypto.spec.PBEParameterSpec; import org.apache.commons.codec.binary.Base64; public class ImoocPBE { private static String src = "cakin24 security pbe"; public static void main(String[] args) { jdkPBE(); } public static void jdkPBE() { try { //初始化鹽 SecureRandom random = new SecureRandom(); byte[] salt = random.generateSeed(8); //口令與密鑰 String password = "cakin24"; PBEKeySpec pbeKeySpec = new PBEKeySpec(password.toCharArray()); SecretKeyFactory factory = SecretKeyFactory.getInstance("PBEWITHMD5andDES"); Key key = factory.generateSecret(pbeKeySpec); //加密 PBEParameterSpec pbeParameterSpec = new PBEParameterSpec(salt, 100); Cipher cipher = Cipher.getInstance("PBEWITHMD5andDES"); cipher.init(Cipher.ENCRYPT_MODE, key, pbeParameterSpec); byte[] result = cipher.doFinal(src.getBytes()); System.out.println("jdk pbe encrypt : " + Base64.encodeBase64String(result)); //解密 cipher.init(Cipher.DECRYPT_MODE, key, pbeParameterSpec); result = cipher.doFinal(result); System.out.println("jdk pbe decrypt : " + new String(result)); } catch (Exception e) { e.printStackTrace(); } } }
六 實現(xiàn)效果
jdk pbe encrypt : UKXIqWmtrNBpJ1ayTgGWmpswSLPLel5X
jdk pbe decrypt : cakin24 security pbe
七 應用場景
PS:關于加密解密感興趣的朋友還可以參考本站在線工具:
文字在線加密解密工具(包含AES、DES、RC4等):
http://tools.jb51.net/password/txt_encode
MD5在線加密工具:
http://tools.jb51.net/password/CreateMD5Password
在線散列/哈希算法加密工具:
http://tools.jb51.net/password/hash_encrypt
在線MD5/hash/SHA-1/SHA-2/SHA-256/SHA-512/SHA-3/RIPEMD-160加密工具:
http://tools.jb51.net/password/hash_md5_sha
在線sha1/sha224/sha256/sha384/sha512加密工具:
http://tools.jb51.net/password/sha_encode
更多關于java相關內(nèi)容感興趣的讀者可查看本站專題:《Java數(shù)學運算技巧總結》、《Java數(shù)據(jù)結構與算法教程》、《Java字符與字符串操作技巧總結》、《Java操作DOM節(jié)點技巧總結》和《Java緩存操作技巧匯總》
希望本文所述對大家java程序設計有所幫助。
- Java對稱加密算法DES實例詳解
- java 非對稱加密算法DH實現(xiàn)詳解
- java 非對稱加密算法RSA實現(xiàn)詳解
- java 對稱加密算法實現(xiàn)詳解
- Java實現(xiàn)的對稱加密算法AES定義與用法詳解
- Java實現(xiàn)的對稱加密算法3DES定義與用法示例
- Java 對稱加密幾種算法分別實現(xiàn)
- java基于Des對稱加密算法實現(xiàn)的加密與解密功能詳解
- java基于AES對稱加密算法實現(xiàn)的加密與解密功能示例
- JAVA加密算法- 非對稱加密算法(DH,RSA)的詳細介紹
- java加密算法分享(rsa解密、對稱加密、md5加密)
- Java 實現(xiàn)對稱加密算法
相關文章
在java中使用SPI創(chuàng)建可擴展的應用程序操作
這篇文章主要介紹了在java中使用SPI創(chuàng)建可擴展的應用程序操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-09-09SpringBoot 監(jiān)控管理模塊actuator沒有權限的問題解決方法
這篇文章主要介紹了SpringBoot 監(jiān)控管理模塊actuator沒有權限的問題解決方法,需要的朋友可以參考下2017-12-12Spring Boot + Vue 前后端分離項目如何踢掉已登錄用戶
這篇文章主要介紹了Spring Boot + Vue 前后端分離項目如何踢掉已登錄用戶,需要的朋友可以參考下2020-05-05