我创建了一个简单的java聊天应用程序。以下是以下内容
当我尝试解密时,我得到“not PKCS#1 block type 2 or Zero padding”异常
public static byte[] encrypt(String text, PublicKey key) throws {
// get an RSA cipher object and print the provider
final Cipher cipher = Cipher.getInstance(ALGORITHM);
// encrypt the plain text using the public key
cipher.init(Cipher.ENCRYPT_MODE, key);
byte[] cipherText = cipher.doFinal(text.getBytes("UTF8"));
return org.apache.commons.codec.binary.Base64.encodeBase64(cipherText);
}
public static String decrypt(String text, PrivateKey key) throws {
byte[] dectyptedText = null;
// get an RSA cipher object and print the provider
final Cipher cipher = Cipher.getInstance(ALGORITHM);
// decrypt the text using the private key
cipher.init(Cipher.DECRYPT_MODE, key);
byte[] byteCipherText =org.apache.commons.codec.binary.Base64.decodeBase64(text):
byte[] cipherData = cipher.doFinal(byteCipherText);
return new String(dectyptedText);
}
private void btnDecryptActionPerformed(ActionEvent evt) throws {
String name11 = this.getTitle();
String test90 = null;
String PRIVATE_KEY_FILE = "C:/keys/"+name11+"/private.key";
BufferedReader in = null;
try {
in = new BufferedReader(new FileReader("cipher.txt"));
} catch (FileNotFoundException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
try {
while(in.ready())
{
String stest= in.readLine();
test90 = stest;
}
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
ObjectInputStream inputStream = null;
try {
inputStream = new ObjectInputStream(new FileInputStream(PRIVATE_KEY_FILE));
} catch (FileNotFoundException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
PrivateKey privateKey = null;
try {
privateKey = (PrivateKey) inputStream.readObject();
} catch (ClassNotFoundException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
try {
inputStream = new ObjectInputStream(new FileInputStream(PRIVATE_KEY_FILE));
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {
PrivateKey privatekey = (PrivateKey) inputStream.readObject();
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
String plainText;
// byte[] test100 = test90.getBytes();
// out.println(test100);
plainText = decrypt(test90, privateKey); (Getting Error Here)
decryptText.append(plainText);
}
下面突出显示的代码表示test90
只包含cipher.txt
文件中的最后一行。cipher.txt只包含1行吗?如果你想把每一行都读进去,你需要在读进去的时候把每一行串联起来。
while(in.ready())
{
String stest= in.readLine();
test90 = stest;
}
在decrypt
方法中system.out
变量test90
也是一个好主意,以确保您得到的是要解密的预期base64数据。
用例:I有一个用例,其中客户机生成私钥和公钥,将64位编码的公钥发送给服务器。 在服务器端,我将使用此公钥加密消息,并将加密的消息发送到客户端,客户端使用其私钥对其进行解密。商定的算法是“RSA”。 问题是在服务器端,我看到某些密钥正在使用作为密钥规范工作 虽然一些键抛出异常()使用但使用工作: 所以,我开始理解的是,客户端和服务器需要同意是否使用:或来编码密钥。我的问题是哪一个更适合我的用例?什
我正在用JMS制作一个简单的聊天应用程序,但我的代码不起作用,我不知道为什么。这是我的代码,我与JBoss一起使用,所以我打开pub并编写了这段代码,当我单击启动Eclipse时,给我以下错误消息:
本文向大家介绍Android编写简单的聊天室应用,包括了Android编写简单的聊天室应用的使用技巧和注意事项,需要的朋友参考一下 最近写了一个简单的聊天室应用,可以发送表情,更改头像这些功能。主要技术点就是怎样把表情图片放到textview等Ui控件中展示。这里废话不多说,下面是效果图: 这里主要讲下怎样把文本替换到表情,先说下思路,首先我们的图片是保存在本地资源目录drawable中而所有的
本文向大家介绍Node.js制作简单聊天室,包括了Node.js制作简单聊天室的使用技巧和注意事项,需要的朋友参考一下 看了TCP的有关知识,写了个基于NET的聊天室。 运行截图: 终端: telnet 这里截取了两个网友 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持呐喊教程。
我正试图通过电报聊天发送消息。我希望电报设置只能通过官方用户界面完成,因为我希望它可能由最终用户完成。 以下是我所做的电报设置: 我通过获得令牌创建了机器人 我创建了一个通道: 点击"新频道" 通道名称: 点击下一步 选择私人频道 点击保存 添加我的机器人 点击制作管理员 点击保存 打开频道 在频道菜单上,选择“管理频道” 单击讨论中的“添加组” 单击“创建新组” 组名: 单击“创建” 单击“保存
本文向大家介绍java Socket简易聊天工具,包括了java Socket简易聊天工具的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家分享了一款Socket简易聊天工具,希望大家喜欢。 代码运行如图,看起来还不错 服务端 客户端 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持呐喊教程。