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

java使用RSA加密方式實(shí)現(xiàn)數(shù)據(jù)加密解密的代碼

 更新時(shí)間:2019年11月06日 10:05:15   作者:數(shù)據(jù)架構(gòu)師  
這篇文章給大家分享java使用RSA加密方式實(shí)現(xiàn)數(shù)據(jù)加密解密,通過實(shí)例代碼文字相結(jié)合給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友參考下

RSA的應(yīng)用

RSA是一種非對稱加密算法?,F(xiàn)在,很多登陸表單的密碼的都采用RSA加密,例如京東中的登陸使用公鑰對密碼進(jìn)行加密

java使用RSA加密方式實(shí)現(xiàn)數(shù)據(jù)加密解密,需要首先產(chǎn)生私鑰和公鑰

測試代碼

public static void main(String args[]) 
{
  try {
    RSADemo rsa=new RSADemo();
    rsa.generateKey();
    byte[] data=rsa.encrypt("luanpeng".getBytes());
    byte[] data1=rsa.decrypt(data);
    String str=new String(data1);
    System.out.println(str);
  } catch (Exception e) {
    System.out.println(e.toString());
  }
}

RSA工具類的實(shí)現(xiàn)

package com.lp.app.safe;

import java.security.*;
import java.security.interfaces.*;
import java.math.*;

public class RSADemo {
  public RSADemo() {
  }
  PublicKey pbkey;
  PrivateKey prkey;
  public void generateKey() {
    try {
      KeyPairGenerator kpg = KeyPairGenerator.getInstance("RSA");
      kpg.initialize(1024);
      KeyPair kp = kpg.genKeyPair();
      pbkey = kp.getPublic();
      prkey = kp.getPrivate();
    } catch (Exception e) {
    }
  }

  //加密,需要公鑰
  public byte[] encrypt(byte[] ptext) throws Exception {
    // 獲取公鑰及參數(shù)e,n
    RSAPublicKey pbk = (RSAPublicKey)pbkey;
    BigInteger e = pbk.getPublicExponent();
    BigInteger n = pbk.getModulus();
    // 獲取明文m
    BigInteger m = new BigInteger(ptext);
    // 計(jì)算密文c
    BigInteger c = m.modPow(e, n);
    return c.toByteArray();
  }

  //使用私鑰進(jìn)行解密
  public byte[] decrypt(byte[] ctext) throws Exception {
    // 讀取密文
    BigInteger c = new BigInteger(ctext);
    // 讀取私鑰
    RSAPrivateKey prk = (RSAPrivateKey)prkey;
    BigInteger d = prk.getPrivateExponent();

    // 獲取私鑰參數(shù)及解密
    BigInteger n = prk.getModulus();
    BigInteger m = c.modPow(d, n);

    // 顯示解密結(jié)果
    byte[] mt = m.toByteArray();
    return mt;
  }
}

總結(jié)

以上所述是小編給大家介紹的java使用RSA加密方式實(shí)現(xiàn)數(shù)據(jù)加密解密的代碼,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時(shí)回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
如果你覺得本文對你有幫助,歡迎轉(zhuǎn)載,煩請注明出處,謝謝!

相關(guān)文章

  • 詳解Spring Data Jpa當(dāng)屬性為Null也更新的完美解決方案

    詳解Spring Data Jpa當(dāng)屬性為Null也更新的完美解決方案

    這篇文章主要介紹了詳解Spring Data Jpa當(dāng)屬性為Null也更新的完美解決方案,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2019-02-02
  • SpringData JPA實(shí)體映射與關(guān)系映射的實(shí)現(xiàn)

    SpringData JPA實(shí)體映射與關(guān)系映射的實(shí)現(xiàn)

    Spring Data JPA作為Spring生態(tài)系統(tǒng)中的核心項(xiàng)目,通過JPA規(guī)范提供了優(yōu)雅而強(qiáng)大的實(shí)體映射與關(guān)系處理機(jī)制,下面就來介紹一下,感興趣的可以了解一下
    2025-04-04
  • Java獲取用戶IP屬地模擬抖音詳解

    Java獲取用戶IP屬地模擬抖音詳解

    細(xì)心的小伙伴可能會發(fā)現(xiàn),抖音新上線了 IP 屬地的功能,小伙伴在發(fā)表動態(tài)、發(fā)表評論以及聊天的時(shí)候,都會顯示自己的 IP 屬地信息,本篇文章我們來模擬實(shí)現(xiàn)這一功能
    2022-07-07
  • redis深入淺出分布式鎖實(shí)現(xiàn)上篇

    redis深入淺出分布式鎖實(shí)現(xiàn)上篇

    在單體應(yīng)用中,如果我們對共享數(shù)據(jù)不進(jìn)行加鎖操作,會出現(xiàn)數(shù)據(jù)一致性問題,我們的解決辦法通常是加鎖。下面我們一起聊聊使用redis來實(shí)現(xiàn)分布式鎖
    2022-08-08
  • Java的設(shè)計(jì)模式編程中迪米特法則的應(yīng)用示例

    Java的設(shè)計(jì)模式編程中迪米特法則的應(yīng)用示例

    這篇文章主要介紹了Java的設(shè)計(jì)模式編程中迪米特法則的應(yīng)用示例,迪米特法則中主張創(chuàng)建和使用弱耦合的類,需要的朋友可以參考下
    2016-02-02
  • java面向?qū)ο蠡A(chǔ)_final詳細(xì)介紹

    java面向?qū)ο蠡A(chǔ)_final詳細(xì)介紹

    本文將詳細(xì)介紹java final 對象的使用,需要了解更多的朋友可以參考下
    2012-11-11
  • MyBatis-Plus數(shù)據(jù)權(quán)限插件的簡單使用

    MyBatis-Plus數(shù)據(jù)權(quán)限插件的簡單使用

    在MyBatis-Plus中,通過DataPermissionInterceptor插件實(shí)現(xiàn)數(shù)據(jù)權(quán)限控制,首先需要?jiǎng)?chuàng)建自定義注解和處理類,利用JSQLParser庫動態(tài)修改SQL,實(shí)現(xiàn)按角色權(quán)限過濾數(shù)據(jù),配置類中注冊攔截器,確保只有授權(quán)用戶能訪問指定數(shù)據(jù),感興趣的可以了解一下
    2024-10-10
  • 學(xué)習(xí)Java內(nèi)存模型JMM心得

    學(xué)習(xí)Java內(nèi)存模型JMM心得

    這篇文章主要介紹了學(xué)習(xí)Java內(nèi)存模型JMM的心得以及對其原理做了深入的介紹,有興趣的朋友學(xué)習(xí)下吧。
    2017-12-12
  • Java 如何將表格數(shù)據(jù)導(dǎo)入word文檔中

    Java 如何將表格數(shù)據(jù)導(dǎo)入word文檔中

    這篇文章主要介紹了Java將表格數(shù)據(jù)導(dǎo)入word文檔中的操作,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-06-06
  • Mybatis的SqlRunner執(zhí)行流程實(shí)現(xiàn)

    Mybatis的SqlRunner執(zhí)行流程實(shí)現(xiàn)

    MyBatis提供了一個(gè)用于操作數(shù)據(jù)庫的SqlRunner工具類,對JDBC做了很好的封裝,本文主要介紹了Mybatis的SqlRunner執(zhí)行流程實(shí)現(xiàn),具有一定的參考價(jià)值,感興趣的可以了解一下
    2023-10-10

最新評論

格尔木市| 修文县| 曲水县| 平阳县| 漳平市| 剑川县| 九江县| 商洛市| 贞丰县| 木里| 新昌县| 上犹县| 中牟县| 普安县| 汉川市| 深圳市| 临湘市| 聂荣县| 绥滨县| 沙雅县| 石渠县| 利川市| 怀远县| 张家界市| 平遥县| 景东| 营山县| 阳西县| 博野县| 涟水县| 西乡县| 浦北县| 玛纳斯县| 会东县| 华亭县| 莱州市| 阿城市| 富阳市| 梁平县| 嘉定区| 延津县|