有一段用java实现rsa加解密的程序看不懂,希望高手帮我做下注释,详细些,谢谢

有一段用java实现rsa加解密的程序看不懂,希望高手帮我做下注释,详细些,谢谢,第1张

//引入文件

import javasecurity;

import javaxcrypto;

/

RSACryptography

RSACryptography use the privated key to encrypt the plain text and decrypt

the cipher text with the public key

/

public class RSACryptography {

Cipher cipher;

/

构造函数,就是你每次new这个对象RSACryptography 时候就会执行里面的方法

返回一个Cipher对象(其实他就是用来加密解密的)

/

public RSACryptography() {

try {

cipher = CiphergetInstance("RSA");//返回一个cipher对象,该类

//应该是单例的

} catch (NoSuchAlgorithmException e) {//抛出异常,没什么说的

eprintStackTrace();

} catch (NoSuchPaddingException e) {

eprintStackTrace();

}

}

/

好了,重点来了,你需要加密解密的就调用这个方法encrypt_decrypt(),传入一个byte[]的类型值byteInput,,就是你要加密的东西,在传入一个key,这个key 就像钥匙一样,你根据这个key进行加密,也可以根据这个key进行解密的,boolean 类型的 crypto,如果true就是加密,false就是解密

/

public byte[] encrypt_decrypt(byte[] byteInput, Key key, boolean crypto) {

try {

if(crypto){

cipherinit(CipherENCRYPT_MODE,key);//加密前初始化

}else{

cipherinit(CipherDECRYPT_MODE,key);//解密前初始化

}

byte[] cipherByte = cipherdoFinal(byteInput);//进行加密或解密

return cipherByte;//返回你的加密或者解密值类型为byte[]

} catch (InvalidKeyException e) {//抛出异常

eprintStackTrace();

} catch (IllegalBlockSizeException e) {

eprintStackTrace();

} catch (BadPaddingException e) {

eprintStackTrace();

}

return null;

}

}

可以横向加密,即对同一个明码进行分别加密,验证时需要验证两个密文分别解密后是否同时成立;

可以纵向加密,先使用其中一个加密程序对明文加密,得到密文1;再用另一个程序对密文1再次加密,解密则反之。

Dim a() As String, b() As Integer, n As Integer

Text2 = ""

n = Len(Text1)

ReDim a(n)

ReDim b(n + 3)

For i = 1 To n

a(i) = Mid(Text1, i, 1)

If (Asc(a(i)) >= 65 And Asc(a(i)) <= 90) Or (Asc(a(i)) >= 97 And Asc(a(i)) <= 122) Then

b(i) = Asc(a(i)) + 3

If b(i) > Asc("Z") And b(i) < Asc("a") Then b(i) = Asc("A") + b(i) - Asc("Z") - 1

If b(i) > Asc("z") Then b(i) = Asc("a") + b(i) - Asc("z") - 1

Else

b(i) = Asc(a(i))

End If

a(i) = Chr(b(i))

Text2 = Text2 & a(i)

Next

Text3 = Text2

End Sub

Private Sub Command2_Click()

Dim a() As String, b() As Integer, n As Integer

Text4 = ""

n = Len(Text3)

ReDim a(n)

ReDim b(n + 3)

For i = 1 To n

a(i) = Mid(Text3, i, 1)

If (Asc(a(i)) >= 65 And Asc(a(i)) <= 90) Or (Asc(a(i)) >= 97 And Asc(a(i)) <= 122) Then

b(i) = Asc(a(i)) - 3

If b(i) >= 62 And b(i) < Asc("A") Then b(i) = Asc("Z") - (Asc("A") + b(i)) + 1

If b(i) >= 94 And b(i) < Asc("a") Then b(i) = Asc("z") - Asc("a") + b(i) + 1

Else

b(i) = Asc(a(i))

End If

a(i) = Chr(b(i))

Text4 = Text4 & a(i)

Next

End Sub

为便于调试对照,其中将加密后的文件直接放在了TEXT3中。调试完可去掉

#include <stdioh>

#include <stringh>

#define MAXSIZE 81

int main()

{

char str[MAXSIZE];

int i;

int offset;

int n;

printf("请输入要加密的字符串:"); //最大输入个数是80个字符

gets(str);

printf("请输入要偏移量:"); //若将a变为b,则偏移量为1,以此类推,偏移量在1-25之间

scanf("%d%c", &offset);

n = strlen(str);

for (i = 0; i < n; i++)

{

if ('a' <= str[i] && str[i] <= 'z' - offset || 'A' <= str[i] && str[i] <= 'Z' - offset)

str[i] += offset;

else

str[i] += offset - 26;

}

printf("加密后的字符串是:");

puts(str);

return 0;

}

以上就是关于有一段用java实现rsa加解密的程序看不懂,希望高手帮我做下注释,详细些,谢谢全部的内容,包括:有一段用java实现rsa加解密的程序看不懂,希望高手帮我做下注释,详细些,谢谢、怎样把两个java加密解密程序连在一起实现两种加密功能!、编写程序,实现对任意字符串的加密和解密 *** 作等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/9294526.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-26
下一篇 2023-04-26

发表评论

登录后才能评论

评论列表(0条)

保存