写两个程序 - 一个用于Alice,另一个用于Bob。它们之间的数据交换是通过用作通信信道的文本文件实现的。
我一直在Netbeans中收到错误:
线程“main”中的异常java.lang.RuntimeException:无法编译的源代码 - 错误的sym类型:Signature.encode
任何人都可以帮助引导我朝着正确的方向前进吗?如果需要,我可以发布错误消息;它显示了爱丽丝的钥匙和扩展的消息,但没有关于鲍勃。 如果需要,我也可以发布实验室指示。
import java.math.BigInteger;
class Signature {
static class Keys {
BigInteger n = new BigInteger("9617");
BigInteger d = new BigInteger("3869");
BigInteger e = new BigInteger("17");
}
public static void main(String[] args) {
Keys keys = new Keys();
String message = "What's up Bob";
int blockSize = 4;
Signature obj = new Signature();
System.out.println("Alice's keys:");
System.out.println("e: " + keys.e);
System.out.println("d: " + keys.d);
System.out.println("n: " + keys.n);
while (message.length() % (blockSize / 2) != 0) {
message += "-";
}
/
System.out.println(
"Alice's extended message:\n" +
message);
String encodedMsg = obj.encode(message);
String signature = obj.dosignature(
encodedMsg, keys.d, keys.n, blockSize);
System.out.println(
"Alice's digital signature\n" +
signature);
String signedMsg = message + "_" + signature;
System.out.println(
"Alice's signed message:\n" +
signedMsg);
String extractedMsgText =
signedMsg.substring(
0, signedMsg.indexOf('_'));
System.out.println(
"Bob's extracted message text:\n" +
extractedMsgText);
String extractedSignature =
signedMsg.substring(
signedMsg.indexOf('_') + 1);
System.out.println(
"Bob's extracted digital signature:\n" +
extractedSignature);
String decipheredSignature;
decipheredSignature = obj.doRSA(extractedSignature, keys.e, keys.n, blockSize);
String decodedSignature = obj.decode(
decipheredSignature);
System.out.println(
"Bob's decoded digital signature:\n" +
decodedSignature);
if (extractedMsgText.equals(decodedSignature)) {
System.out.println(
"Bob's conclusion: Valid signature");
} else {
System.out.println(
"Bob's conclusion: Invalid signature");
}
}
}
答案 0 :(得分:0)
班级Signature
没有encode
方法。