私はSH1 RSA
でメッセージをエンコードしようとしていますが、RSA
についてのいくつかの基本情報を除いて、セキュリティの対象に関する経験はありません。私は秘密鍵をString
として与えられています。私は仕事をするために次のコードブロックを書くことができましたが、私が仕事をしっかりと正確にやっているかどうかはわかりません。Java:文字列からPrivateKeyを生成するにはどうすればよいですか?
私はエキスパートではありませんが、私の秘密鍵をコードに文字列として入れるのは安全ではありません。誰も私を導くことができますか?
String privateKeyString = "mykeyhere...";
byte[] privateKeyBytes = privateKeyString.getBytes();
String encodedPrivateKey = Base64.encodeToString(privateKeyBytes, Base64.URL_SAFE);
KeyFactory factory = KeyFactory.getInstance(RSA);
PKCS8EncodedKeySpec keySpec = new PKCS8EncodedKeySpec(encodedPrivateKey.getBytes());
RSAPrivateKey privateKey = (RSAPrivateKey) factory.generatePrivate(keySpec);
Signature instance = Signature.getInstance(ALGORITHM);
instance.initSign(privateKey);
instance.update(content.getBytes());
return new String(instance.sign());
として私のプライベートキーの形式は次のとおりです。あなたのキーの形式は暗号化されていないbase64エンコードPKCS8でエンコードされた秘密鍵である
"-----BEGIN PRIVATE KEY-----\n"+
"MIIE...\n"+
"cH0iRj...\n"+
"O0Hhj...\n"+
.
.
.
"fG6...\n"+
"B6/hF...\n"+
"3Mq38...\n"+
"-----END PRIVATE KEY-----\n"
privateKeyStringとは何ですか?パスワード?実数値のRSA秘密鍵を使用していますか?どんな形式で与えられていますか? Base64? 16進数?その他? –
@ ConstantinosChalkias、私は私のキーフォーマットを追加しました。 –
キーストアを試しましたか? http://stackoverflow.com/questions/9890313/how-to-use-keystore-in-java-to-store-private-key#answer-27869798 –