一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術(shù)|正則表達(dá)式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務(wù)器之家 - 編程語言 - Java教程 - Java實(shí)現(xiàn)RSA算法的方法詳解

Java實(shí)現(xiàn)RSA算法的方法詳解

2021-04-18 15:44chengqiuming Java教程

這篇文章主要介紹了Java實(shí)現(xiàn)RSA算法的方法,結(jié)合實(shí)例形式分析了RSA算法的原理、實(shí)現(xiàn)與使用方法,需要的朋友可以參考下

本文實(shí)例講述了java實(shí)現(xiàn)rsa算法的方法。分享給大家供大家參考,具體如下:

一 介紹

唯一廣泛接受并實(shí)現(xiàn)
用于數(shù)據(jù)加密和數(shù)字簽名
公鑰加密、私鑰解密
私鑰加密、公鑰解密

二 rsa參數(shù)說明

Java實(shí)現(xiàn)RSA算法的方法詳解

三 實(shí)現(xiàn)

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
package com.imooc.security.rsa;
import java.security.keyfactory;
import java.security.keypair;
import java.security.keypairgenerator;
import java.security.privatekey;
import java.security.publickey;
import java.security.interfaces.rsaprivatekey;
import java.security.interfaces.rsapublickey;
import java.security.spec.pkcs8encodedkeyspec;
import java.security.spec.x509encodedkeyspec;
import javax.crypto.cipher;
import org.apache.commons.codec.binary.base64;
public class imoocrsa {
  private static string src = "cakin24 security rsa";
  public static void main(string[] args) {
    jdkrsa();
  }
  public static void jdkrsa() {
    try {
      //1.初始化密鑰
      keypairgenerator keypairgenerator = keypairgenerator.getinstance("rsa");
      keypairgenerator.initialize(512);
      keypair keypair = keypairgenerator.generatekeypair();
      rsapublickey rsapublickey = (rsapublickey)keypair.getpublic();
      rsaprivatekey rsaprivatekey = (rsaprivatekey)keypair.getprivate();
      system.out.println("public key : " + base64.encodebase64string(rsapublickey.getencoded()));
      system.out.println("private key : " + base64.encodebase64string(rsaprivatekey.getencoded()));
      //2.私鑰加密、公鑰解密——加密
      pkcs8encodedkeyspec pkcs8encodedkeyspec = new pkcs8encodedkeyspec(rsaprivatekey.getencoded());
      keyfactory keyfactory = keyfactory.getinstance("rsa");
      privatekey privatekey = keyfactory.generateprivate(pkcs8encodedkeyspec);
      cipher cipher = cipher.getinstance("rsa");
      cipher.init(cipher.encrypt_mode, privatekey);
      byte[] result = cipher.dofinal(src.getbytes());
      system.out.println("私鑰加密、公鑰解密——加密 : " + base64.encodebase64string(result));
      //3.私鑰加密、公鑰解密——解密
      x509encodedkeyspec x509encodedkeyspec = new x509encodedkeyspec(rsapublickey.getencoded());
      keyfactory = keyfactory.getinstance("rsa");
      publickey publickey = keyfactory.generatepublic(x509encodedkeyspec);
      cipher = cipher.getinstance("rsa");
      cipher.init(cipher.decrypt_mode, publickey);
      result = cipher.dofinal(result);
      system.out.println("私鑰加密、公鑰解密——解密:" + new string(result));
      //4.公鑰加密、私鑰解密——加密
      x509encodedkeyspec = new x509encodedkeyspec(rsapublickey.getencoded());
      keyfactory = keyfactory.getinstance("rsa");
      publickey = keyfactory.generatepublic(x509encodedkeyspec);
      cipher = cipher.getinstance("rsa");
      cipher.init(cipher.encrypt_mode, publickey);
      result = cipher.dofinal(src.getbytes());
      system.out.println("公鑰加密、私鑰解密——加密 : " + base64.encodebase64string(result));
      //5.公鑰加密、私鑰解密——解密
      pkcs8encodedkeyspec = new pkcs8encodedkeyspec(rsaprivatekey.getencoded());
      keyfactory = keyfactory.getinstance("rsa");
      privatekey = keyfactory.generateprivate(pkcs8encodedkeyspec);
      cipher = cipher.getinstance("rsa");
      cipher.init(cipher.decrypt_mode, privatekey);
      result = cipher.dofinal(result);
      system.out.println("公鑰加密、私鑰解密——解密:" + new string(result));
    } catch (exception e) {
      e.printstacktrace();
    }
  }
}

四 實(shí)現(xiàn)效果

public key : mfwwdqyjkozihvcnaqebbqadswawsajbajcbeob97idkkirbmx3moy5e4erwh0uvc2bcnly1rdo0lz8ibr1bl1rjxwkhv7u0aso/5dblnnngbqrtsjlscpmcaweaaq==
private key : miibvaibadanbgkqhkig9w0baqefaascat4wgge6ageaakealwf45v3sh2ssksgbhcw5jl7h5hchs68lyfw2vjwsojsvnyjthvuxveldaqe/ttqbi7/kmgweecztbg2wmwwi8widaqabakadskprsl+ew3s2n+cemizxfyyb0xhs1d84qapafpixkunvwl0a4ovrwsnwt4mejatwvtufnvtxizczdx+q5dbbaiea9tzzymgru+3mdlax0icf+niqwvlqyvedka4ksx55gvuciqcdoex6mqgrp78aqjykweogwliszju5fn/lfvkzrcgbjwihamvbblzzaykhy0ikw75kd/lksyouty+20bap+midrqgzaia6r36eerkzqubtcl8lxypb5f79htxd5dcvnib/zgp0uwigwtxi7ixhjycsnomsjdu1j3du9kqquw/eohxrk/oguye=
私鑰加密、公鑰解密——加密 : vjkfsoivelvkes5rprhsjk9tdtzohdells7yluidcyee7dkucm9srj8kwadynhi4m0olafjhk6447hp7ia8x7a==
私鑰加密、公鑰解密——解密:cakin24 security rsa
公鑰加密、私鑰解密——加密 : gawl73uxhto+efkkpmfmdhtk0vh7hb8n+30l1hp8aamiagd21h2x/q/ns+sogsoxnovunzasgzenmzzcjb4vea==
公鑰加密、私鑰解密——解密:cakin24 security rsa

五 應(yīng)用場(chǎng)景

Java實(shí)現(xiàn)RSA算法的方法詳解

希望本文所述對(duì)大家java程序設(shè)計(jì)有所幫助。

原文鏈接:https://blog.csdn.net/chengqiuming/article/details/78755050

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 国产a在线 | 色在线看 | 日本视频在线观看 | 国产成人久久精品一区二区三区 | 日本成熟bbxxxxxxxx | 亚洲成人福利网站 | 人人爽人人草 | 成在线人免费视频一区二区三区 | 亚洲福利精品电影在线观看 | 国产成人一区二区三区影院免费 | 午夜亚洲福利 | 拍拍叫痛的无挡视频免费 | 韩国三级年轻小的胰子完整 | 九九九国产在线 | 日本在线视频免费观看 | 99爱视频 | 国内自拍2020 | 超91精品手机国产在线 | 成人免费视屏 | 久久精品动漫99精品动漫 | 特黄特级高清免费视频毛片 | 欧美人妖大啪啪 | sss在线播放 | 99热这里只有精品一区二区三区 | 欧洲vodafone精品性 | 国产一级毛片外aaaa | 成年人视频在线 | 韩国理论三级在线观看视频 | 美女福利视频一区二区 | 国产亚洲人成网站天堂岛 | 精品推荐国产麻豆剧传媒 | 拔插拔插成人 | 香蕉久久夜色精品国产小优 | 色欲麻将| 欧洲美女人牲交一级毛片 | 国产酒店自拍 | 欧洲美女女同 | 精品欧美一区二区三区四区 | 1024视频色版在线网站 | 无人区在线观看免费视频国语 | 成人午夜在线视频 |