2017-03-31 5 views
-2

2つのプログラムを書きます.1つはアリス用、もう1つはボブ用です。それらの間のデータ交換は、通信チャネルとして使用されるテキストファイルによって達成される。誤っSYMタイプ - 互換性のないソースコード:Signature.encodeデジタル署名を使用してJavaでプログラムを書くことについての質問

でき

スレッド "メイン" java.lang.RuntimeExceptionの例外:私はNetBeansでエラーを取得しておく

誰かが正しい方向に私を助けてくれますか?必要に応じてエラーメッセージを投稿することができます。それはアリスの鍵と拡張メッセージを表示しますが、ボブについては何も表示しません。 必要に応じてラボの指示を投稿することもできます。

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

コンパイルされていないJavaコードを実行しようとしています。それをしないでください。コンパイラから取得したエラーを読み込み、すべて修正してから、コードを実行します。また、コードをインデントします。あなたのIDEは、単一のキーボードショートカットでそれを行うことができます。インデントされていないコードは読めません。 –

+0

コンパイルされていない課題を手渡しましたが、あなたの教授が解決策を「間違っている」と拒否する理由を与えていないことに驚いていますか? – domsson

+0

私はちょうど彼らが何か目立っている誤りであると思っていた。私は修正しようとしているが、私は次のことをしなければならない。 – LordEwok

答えて

0

クラスSignatureencodeメソッドを持っていません。

+0

これは質問に対する答えを提供しません。批評をしたり、著者の説明を求めるには、投稿の下にコメントを残してください。 - [レビューの投稿者](レビュー/低品質の投稿/ 15708776) –

+0

質問は、誰でも正しい方向に私を助けることができますか?これは一方向です。私にとって問題の根本。 – michaeak

関連する問題