最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

JAVA對稱加密算法PBE定義與用法實例分析

 更新時間:2019年09月05日 09:52:14   作者:cakincqm  
這篇文章主要介紹了JAVA對稱加密算法PBE定義與用法,結(jié)合實例形式分析了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:關(guān)于加密解密感興趣的朋友還可以參考本站在線工具:

文字在線加密解密工具(包含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

更多關(guān)于java相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Java數(shù)學運算技巧總結(jié)》、《Java數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Java字符與字符串操作技巧總結(jié)》、《Java操作DOM節(jié)點技巧總結(jié)》和《Java緩存操作技巧匯總

希望本文所述對大家java程序設計有所幫助。

相關(guān)文章

  • Spring Initializr中生成的mvnw有什么用

    Spring Initializr中生成的mvnw有什么用

    這篇文章主要介紹了Spring Initializr中生成的mvnw有什么用,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-01-01
  • SpringBoot集成SwaggerUi以及啟動時遇到的錯誤

    SpringBoot集成SwaggerUi以及啟動時遇到的錯誤

    這篇文章主要介紹了SpringBoot集成SwaggerUi以及啟動時遇到的錯誤,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-06-06
  • mybatis mapper.xml獲取insert后的自增ID問題

    mybatis mapper.xml獲取insert后的自增ID問題

    這篇文章主要介紹了mybatis mapper.xml獲取insert后的自增ID問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-05-05
  • 詳解Spring MVC攔截器實現(xiàn)session控制

    詳解Spring MVC攔截器實現(xiàn)session控制

    這篇文章主要介紹了詳解Spring MVC攔截器實現(xiàn)session控制,使用session監(jiān)聽,重復登錄后,強制之前登錄的session過期。有興趣的可以了解一下。
    2017-01-01
  • IDEA安裝Activiti插件并解決亂碼問題(推薦)

    IDEA安裝Activiti插件并解決亂碼問題(推薦)

    這篇文章主要介紹了IDEA安裝Activiti插件并解決亂碼問題,本文通過圖文并茂的形式給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-06-06
  • 詳解如何在Spring中為@Value注解設置默認值

    詳解如何在Spring中為@Value注解設置默認值

    在Spring開發(fā)中,我們經(jīng)常會遇到需要從配置文件中讀取屬性的情況,@Value注解是Spring提供的一種便捷方式,能夠讓我們輕松地將配置文件中的屬性注入到Spring Bean中,
    2024-10-10
  • java字符串的大寫字母右移實現(xiàn)方法

    java字符串的大寫字母右移實現(xiàn)方法

    下面小編就為大家?guī)硪黄猨ava字符串的大寫字母右移實現(xiàn)方法。小編覺得聽不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-04-04
  • Java注解(Annotations)的定義和使用詳解

    Java注解(Annotations)的定義和使用詳解

    Java注解(Annotations)是Java5引入的一種元數(shù)據(jù)(Metadata),它提供了一種在源代碼中嵌入補充信息的方式,這些信息可以被編譯器、JVM或其他工具在編譯時、運行時進行處理,注解本身不會直接影響程序的執(zhí)行,但可以用來指導編譯器、JVM或其他工具的行為,從而實現(xiàn)各種功能
    2025-03-03
  • 一篇文章總結(jié)Java虛擬機內(nèi)存區(qū)域模型

    一篇文章總結(jié)Java虛擬機內(nèi)存區(qū)域模型

    這篇文章主要介紹了一篇文章總結(jié)Java虛擬機內(nèi)存區(qū)域模型,本篇文章主要來總結(jié)一下Java虛擬機內(nèi)存的各個區(qū)域,以及這些區(qū)域的作用、服務對象以及其中可能產(chǎn)生的問題,作為大家的面試寶典。,需要的朋友可以參考下
    2019-06-06
  • 基于javascript實現(xiàn)獲取最短路徑算法代碼實例

    基于javascript實現(xiàn)獲取最短路徑算法代碼實例

    這篇文章主要介紹了基于javascript實現(xiàn)獲取最短路徑算法代碼實例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-02-02

最新評論

汾阳市| 蒙阴县| 安龙县| 成安县| 织金县| 沙洋县| 南投市| 广饶县| 交口县| 那坡县| 达日县| 南皮县| 长泰县| 东丽区| 康平县| 莱阳市| 许昌市| 荣成市| 信宜市| 秀山| 张家港市| 新建县| 阜康市| 禄丰县| 龙川县| 仙桃市| 石门县| 山东省| 包头市| 托里县| 小金县| 开原市| 会泽县| 始兴县| 墨江| 贵溪市| 镇江市| 沽源县| 宜州市| 和平区| 余干县|