이 기사에서는 Java Digital Signature 알고리즘 DSA에 대해 설명합니다. 다음과 같이 참조에 대해 공유하십시오.
1. 소개
DSS : 디지털 서명 표준
DSA : 디지털 서명 알고리즘 디지털 서명 알고리즘
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 .signature java.security; interfations java.security.interfaces.dsapublickey; import java.security.spec.pkcs8encodedkeyspec; import java.security.spec.x509encodedkeyspec; import org.apache.commons.codec.binary.hex; public class {public imoocdsa {cakin24; public static void main (String [] args) {jdkdsa (); } public static void jdkdsa () {try {// 1. 초기화 키 키 이어 게이터 키 이어 게이너 (KeyPairgenerator) = kyypairgenerator.getInstance ( "DSA"); kyypairgenerator.initialize (512); Keypair kyypair = kyypairgenerator.generatekeypair (); dsapublickey dsapublickey = (dsapublickey) kyypair.getpublic (); dsaprivatekey dsaprivatekey = (dsaprivatekey) kyypair.getPrivate (); // 2. 시그니처 pkcs8encodedkeyspec pkcs8encodedkeyspec = 새로운 pkcs8encodedkeyspec (dsaprivatekey.getencoded ()); keyfactory keyfactory = keyfactory.getInstance ( "DSA"); PrivateKey PrivateKey = keyfactory.generate -private (pkcs8encodedkeyspec); Signature Signature = Signature.getInstance ( "sha1withdsa"); Signature.initsign (privatekey); signature.update (src.getBytes ()); 바이트 [] result = signature.sign (); System.out.println ( "JDK DSA 부호 :" + hex.encodeHexString (결과)); // 3. 서명 X509EncodedKeyspec X509EncodedKeyspec = new x509EncodedKeyspec (dsapublickey.getencoded ())를 확인하십시오. keyfactory = keyfactory.getInstance ( "DSA"); publickey publickey = keyfactory.generatepublic (x509encodedkeyspec); Signature = Signature.getInstance ( "sha1withdsa"); signature.initverify (publickey); signature.update (src.getBytes ()); 부울 bool = signature.verify (결과); System.out.println ( "JDK DSA 확인 :" + bool); } catch (예외 e) {e.printstacktrace (); }}}4. 효과를 실현하십시오
JDK DSA 사인 : 302C0214310539F9E19EC98167A687EB4E8F91E7F47326BF021428080B7F0AD2CCFCFC71466998D8D364BA516E840
JDK DSA 확인 : true
5. 응용 프로그램 시나리오
추신 : 암호화 및 암호 해독에 관심이있는 친구들 도이 사이트의 온라인 도구를 참조 할 수도 있습니다.
온라인 RSA 암호화/암호 해독 도구 :
http://tools.vevb.com/password/rsa_encode
텍스트 온라인 암호화 및 암호 해독 도구 (AES, DES, RC4 등) :
http://tools.vevb.com/password/txt_encode
MD5 온라인 암호화 도구 :
http://tools.vevb.com/password/createmd5password
온라인 해시/해시 알고리즘 암호화 도구 :
http://tools.vevb.com/password/hash_encrypt
온라인 MD5/HASH/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 Mathematical Operation Skills의 요약", "Java 데이터 구조 및 알고리즘에 대한 튜토리얼", "Java 캐릭터 및 문자열 운영 기술 요약", "Java 운영 Dom Node Skills 요약"및 "Java Cache 운영 기술의 요약"을 확인하십시오.
이 기사가 모든 사람의 Java 프로그래밍에 도움이되기를 바랍니다.