これは十分に具体的ではないようです。ASCII用のJava正規表現の範囲
はP = 263、Q = 587、公開鍵E = 683と秘密鍵D = 81599.したがってN = PQ = 154381とRSAシステムを考えます。
- 任意の文字を変換する(院生を:メッセージについては、次のように暗号化が行われ、「私は学生です」と言います空白スペース)を3桁のASCIIコード、すなわち073 032 065 077 032 065 032 083 084 085 068 069 078 084
- ブロックを形成するために2つの隣接するASCIIコードを1つずつ結合します。つまり、073032 065077 032065 032083 084085 068069 078084.(最後の文字に何も参加していない場合は000を使用します)。暗号化アルゴリズムを使用して
- C = メートルE MOD Nすべてのブロックを暗号化します。 = 103300 C = 73032 モッズ154381など
は、メッセージの受信されているとします。33815872282353670979238213794429016637939017111351.内容は何ですか?
もう少し検討した後、私は部分的にデコードする必要がある、つまり33815を次にデコードしなければならないと考えています。87228など、デコードされた部分を半分に分割し、半分はアスキー範囲にあり、そうでない場合は元に戻ってそれを別々に分割します。これは正規表現で何かをハックしようとするよりも良い解決策のように聞こえますか?
P.S.デコードは宿題であると私は手作業で行い、メッセージは "暗号が嫌い"(私の講師はユーモアのセンスがあるようです)ので、私は宿題を手助けしていません。これをプログラムに変えることは、面白いかもしれないと思う余分なカリキュラムに過ぎません。
RSAで達成しようとしていることをもう少し説明できますか?私たちはあなたの正規表現であなたを助けることができますが、私はこれの上に何かもっと間違っていると感じています。そのエラーを修正すると、上記の複合ソリューションの必要性が排除される可能性があります –
私は自分でRSAを直接使用したことはありませんが、文字を戻す正しいパスであるとは想像できません。 – stema
RSAはメッセージを 'byte []'にデコードしませんか?英数字の 'String'表現にデコードするケースはありません。関連付けられた 'String'を元に戻すために' new String(bytes) 'を実行できるはずです。 – Gray