//引入文件
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加密解密程序连在一起实现两种加密功能!、编写程序,实现对任意字符串的加密和解密 *** 作等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)