Java をプログラミング言語として使用すると仮定して、GregS の回答を完成させるには:
- Base64 エンコーディングをバイナリに変換する必要があります。いくつかの Base64 デコーダーがあります。たとえば、これは「パブリック ドメイン」のように見えるため、自由に再利用できます。自分で実装することもできます。難しいことではありません。ウィキペディアには、そのための便利なリンクがあります。
SubjectPublicKeyInfo
ASN.1 構造を使用してバイナリ BLOB をデコードします。これは非常に簡単ではありませんが (ASN.1 をマスターしない限り)、既存のコードを使用できます。特に、Java はそれを直接行う方法を知っています。
Java での公開鍵のデコードは次のようになります (バイナリ blob が variable にあると仮定しますblob
)。
KeyFactory kf = KeyFactory.getInstance("RSA");
KeySpec ks = new X509EncodedKeySpec(blob);
RSAPublicKey pk = (RSAPublicKey)kf.generatePublic(ks);
RSAPublicKey
インスタンスから、自明のgetModulus()
andメソッドがあります。関連するクラスは、getPublicExponent()
packagesおよび. 公開鍵の場合、これにより次の結果が得られます。java.security
java.security.interfaces
java.security.spec
modulus = 102645155313298195029358862270152655993457886674545775623230610032728692959011417523892551564448476401788726191516935717690886291325065114613951136136194912439244754958152467056511740824446734443711392654194943771385565670988939260236433577393483222184597978937921816958725758100559250155638540637401770719799
public exponent = 65537