资源简介
java实现简单RSA 公钥密码系统 源代码(有界面)
代码片段和文件信息
package basicMath;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.ArrayList;
import java.util.Random;
import javax.swing.JButton;
import javax.swing.Jframe;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;
public class RSA{
static int p;
static int q;
static int e;
static int d;
static int n;
static int n2;
//返回模M进制的逆序
static ArrayList binary(int xint m) {
ArrayList at = new ArrayList();
int a = 0;
while(x>m||x == m) {
a= x%m;
at.add(a);
x = x/m;
}
at.add(x);
return at;
}
//返回x模m的逆原
static int euclid(int x int m) {
int s0 = 1s1 = 0;
int a = x%mb = 0;
while(a>1) {
a = x%m;
b = x/m;
x = m;
m = a;
int temp = s1;
s1 = s0 - b*s1;
s0 = temp;
}
return s1;
}
//模重复平方
static int powMod(int xint vint h) {
String s = Integer.toBinaryString(v);
char[] s1 = s.toCharArray();
int a = 1;
int b = x %h;
for(int i = s1.length-1;i>-1;i--) {
if(s1[i] == ‘1‘) {
a = (a*b)%h;
b = (b*b)%h;
}else {
b = (b*b)%h;
}
}
return a;
}
//获取随机素数
static int get_number() {
Random random = new Random();
int temp = random.nextInt(20)+3;
int flag = 1;
for(int i=2;i if(temp%i==0) {
flag = 0;
break;
}
}
if(flag == 1)
return temp;
else
return get_number();
}
//获取随机pq的值
static void get_pq() {
p = get_number();
q = get_number();
while(p == q) {
q = get_number();
}
n = p*q;
n2 = (p-1)*(q-1);
}
//获取随机e的值
static void get_e() {
Random random = new Random();
e = random.nextInt(20)+11;
if(e>n2||e==n2){
get_e();
}
}
//获取d的值
static void get_d() {
d = euclid(en2);
if(d<0) {
get_e();
get_d();
}
}
//整型转字符型
static char intTochar(int t) {
char c = (char) t;
return c;
}
//字符型转整型
static int charToint(char t ) {
int i = t;
return i;
}
//加密函数,返回加密后的密文
static String encrypt(String words){
char[] temp = words.toCharArray();
int[] tempint = new int[words.length()];
for(int i =0;i if(charToint(temp[i])<97) {
temp[i] = intTochar(charToint(temp[i])+32);
}
int g = charToint(temp[i])-97;
tempint[i] = g;
}
ArrayList a = new ArrayList();
int t = tempint[0];
int t2 = 1;
while(t2 while (t*26+tempint[t2] t = t*26+tempint[t2];
t2++;
if(t2>tempint.length-1)
break;
}
a.add(powMod(ten ));
if(t2 t = tempint[t2];
t2++;
if(t2 == tempint.length) {
a.add(powMod(ten));
}
}
}
StringBuffer sb = new StringBuffer();
ArrayList tempList = new ArrayList();
for(int i = 0;i
相关资源
- C#和Java实现互通的RSADES加解密算法
- RSA数字签名算法的具体实现
- Rsa非对称加密的Java实现和举例更新版
- 完美使用RSA2结合AES对数据进行加密兼
- Android RSA加密jar包
- RSA算法JAVA公钥加密,C#私钥解密
- 支付宝RSA加解密工具
- RSA加密登录示例278136
- Android RSA加密解密文件
- RSA加密传输AES的key和iv js加密 java解
- RSA加密解密 JS加密 JAVA解密
- C# RSA加密、支持JAVA格式公钥私钥
- 基于JAVA的RSA文件加密软件的设计与实
- RSA加密解密JS加密JAVA解密
- javaweb使用rsa加密解密jar包
- RSA加解密源码及测试代码完整java工程
- JAVA的综合加解密聊天程序,附带文档
- MD5和RSA加密算法Java完成实现
- RSA前台加密后台解密Demo
- Java非对称加密源代码(RSA)-测试包
- android数据传输RSA加密DEMO
- javaRSA加密C++RSA解密
- android加密
- 安卓手机通用adb驱动UniversalAdbDriver官
- javafx_scenebuilder-2_0-macosx-universal.dmg
- RSA加密登录
- RSA算法与DES算法的实现
- Java 生成RSA密钥进行数据加密解密 支
- RSA加密解密java
- universal-image-loader-1.9.5.jar
评论
共有 条评论