1
最初にSHA-1ダイジェストアルゴリズムを使用して文字列にデジタル署名してから、PrivateKeyを使用して署名するRSAアルゴリズムを適用する必要があります。私はすでに私のデータベースにprivateKeyをbase64のデータ型char(250)として格納しています。電子署名のためにJavaのbyte []をjavaのPrivateKeyに変換する
:これは私はダイジェストアルゴリズムSHA-1を適用するCipher cipher = Cipher.getInstance("RSA");
cipher.init(Cipher.ENCRYPT_MODE, privateKey);
byte[] cipherText = cipher.doFinal(digest);
ダイジェストバイトの配列をした私の問題は私が署名のためにそれを使用するためのPrivateKeyに変換する方法がわからないということです
MessageDigest md = MessageDigest.getInstance("SHA-1");
byte [] ba = cadena.getBytes();
byte [] digest = md.digest(ba);
これは私が考えた解決策ですが、誰かがより良い解決策を持っていれば私は感謝します。
は64ベースのエンコードのキーストアタイプは何ですか? – user1084509
@ user1084509私はキーストアタイプがエンコーディングとは関係ないと思います。エンコーディングとは、ある形式のデータを別の形式に変換する手段です。キーストアのタイプは、[この記事(リンク)に記載されているタイプのいずれかである可能性があります](http://docs.oracle.com/javase/1.4.2/docs/guide/security/CryptoSpec.html#AppA) – srkavin
ありがとうあなた、今私はそれを得る。 KeyStore.PrivateKeyEntry pkEntry =(KeyStore.PrivateKeyEntry)ks.getEntry(PRIVATE_KEY_ALIAS、password); ...パスワードの型がKeyStore.ProtectionParameterであると予想されますが、このキャストはどうすればできますか?私のパスワードは、文字の配列または文字列です。 – user1084509