真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

怎么在java中使用RSA加密方式加密解密數(shù)據(jù)

怎么在java中使用RSA加密方式加密解密數(shù)據(jù)?很多新手對(duì)此不是很清楚,為了幫助大家解決這個(gè)難題,下面小編將為大家詳細(xì)講解,有這方面需求的人可以來(lái)學(xué)習(xí)下,希望你能有所收獲。

網(wǎng)站建設(shè)哪家好,找創(chuàng)新互聯(lián)!專(zhuān)注于網(wǎng)頁(yè)設(shè)計(jì)、網(wǎng)站建設(shè)、微信開(kāi)發(fā)、成都微信小程序、集團(tuán)企業(yè)網(wǎng)站建設(shè)等服務(wù)項(xiàng)目。為回饋新老客戶(hù)創(chuàng)新互聯(lián)還提供了克山免費(fèi)建站歡迎大家使用!

RSA的應(yīng)用

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

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

測(cè)試代碼

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工具類(lèi)的實(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;
  }
}

看完上述內(nèi)容是否對(duì)您有幫助呢?如果還想對(duì)相關(guān)知識(shí)有進(jìn)一步的了解或閱讀更多相關(guān)文章,請(qǐng)關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝您對(duì)創(chuàng)新互聯(lián)的支持。


網(wǎng)站欄目:怎么在java中使用RSA加密方式加密解密數(shù)據(jù)
當(dāng)前鏈接:http://weahome.cn/article/jpggoc.html

其他資訊

在線咨詢(xún)

微信咨詢(xún)

電話咨詢(xún)

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部