この記事では、Java Digital Signature Algorithm DSAについて説明します。次のように、参照のために共有してください。
1。はじめに
DSS:デジタル署名標準
DSA:Digital Signature Algorithm Digital Signature Algorithm
DSAにはデジタル署名のみが含まれています
2。パラメーターの説明
3。コード実装
パッケージcom.imooc.security.dsa; import java.security.keyfactory; Import java.security.keypair; Import java.security.keypairgenerator; import java.security.privatekey; Import java.security.publickey; import java.security.security java.security.interfaces.dsaprivatekey; Import java.security.interfaces.dsapublickey; Import java.security.spec.pkcs8encodedkeyspec; Import java.security.security.spec.spec.x509encodedkeyspec; import org.commons.comcodecdba {private static string src = "cakin24 security dsa"; public static void main(string [] args){jdkdsa(); } public static void jdkdsa(){try {// 1。初期化KeyPairgenerator keypairgenerator = keypairgenerator.getInstance( "dsa"); keypairgenerator.initialize(512); keypair keypair = keypairgenerator.generatekeypair(); dsapublickey dsapublickey =(dsapublickey)keypair.getpublic(); dsaprivatekey dsaprivatekey =(dsaprivatekey)keypair.getprivate(); // 2。署名PKCS8ENCODEDKEYSPEC PKCS8ENCODEDKEYSPEC = new PKCS8ENCODEDKEYSPEC(dsaprivateKey.getEncoded()); KeyFactory keyFactory = keyFactory.getInstance( "dsa"); privatekey privatekey = keyFactory.genereTprivate(pkcs8encodedkeyspec);署名署名= signature.getInstance( "sha1withdsa"); signature.initsign(privatekey); signature.update(src.getBytes()); byte [] result = signature.sign(); System.out.println( "JDK DSA sign:" + hex.encodehexstring(result)); // 3。署名X509ENCODEDKEYSPEC X509ENCODEDKEYSPEC = new X509ENCODEDKEYSPEC(dsapublickey.getEncoded())を確認します。 keyFactory = keyFactory.getInstance( "dsa"); publicKey publicKey = keyFactory.generepublic(x509EncodedKeyspec); signature = signature.getInstance( "sha1withdsa"); signature.initverify(publicKey); signature.update(src.getBytes()); boolean bool = signature.verify(result); System.out.println( "JDK DSA Beyify:" + bool); } catch(Exception e){e.printstacktrace(); }}}4.効果を実現します
JDK DSAサイン:302C0214310539F9E19EC98167A687EB4E8F91E7F47326BF02142808080B7F0AD2CFCFFC71466998D8D364BA516E840
JDK DSA Verify:true
5。アプリケーションシナリオ
PS:暗号化と復号化に興味がある友人は、このサイトのオンラインツールを参照することもできます。
オンラインRSA暗号化/復号化ツール:
http://tools.vevb.com/password/rsa_encode
テキストオンライン暗号化と復号化ツール(AE、DES、RC4などを含む):
http://tools.vevb.com/password/txt_encode
MD5オンライン暗号化ツール:
http://tools.vevb.com/password/createmd5password
オンラインハッシュ/ハッシュアルゴリズム暗号化ツール:
http://tools.vevb.com/password/hash_encrypt
オンラインMD5/ハッシュ/SHA-1/SHA-2/SHA-256/SHA-512/SHA-3/RIPEMD-160暗号化ツール:
http://tools.vevb.com/password/hash_md5_sha
オンラインSHA1/SHA224/SHA256/SHA384/SHA512暗号化ツール:
http://tools.vevb.com/password/sha_encode
Java関連のコンテンツの詳細については、このサイトのトピックをご覧ください:「Java数学的操作スキルの概要」、「Javaデータ構造とアルゴリズムに関するチュートリアル」、「Javaキャラクターと文字列操作スキルの概要」、「Java Operation Dom Node Skillsの要約」、および「Java Cache操作スキルの概要」
この記事がみんなのJavaプログラミングに役立つことを願っています。