บทความนี้อธิบายอัลกอริทึมลายเซ็น Java Digital DSA แบ่งปันสำหรับการอ้างอิงของคุณดังนี้:
1. บทนำ
DSS: มาตรฐานลายเซ็นดิจิตอล
DSA: อัลกอริทึมลายเซ็นลายเซ็นดิจิตอล
DSA มีลายเซ็นดิจิตอลเท่านั้น
2. คำอธิบายพารามิเตอร์
3. การใช้งานรหัส
แพ็คเกจ com.imooc.security.dsa; นำเข้า java.security.keyfactory; นำเข้า java.security.keypair; นำเข้า Java.security.keypairgenerator; นำเข้า java.security.privatekey; นำเข้า Java.security.publickey; java.security.interfaces.dsapublickey; นำเข้า java.security.spec.pkcs8encodedkeyspec; นำเข้า java.security.spec.x509encodedkeyspec; นำเข้า org.apache.commons.codec.binary.hex โมฆะคงที่สาธารณะหลัก (สตริง [] args) {jdkdsa (); } โมฆะคงที่สาธารณะ jdkdsa () {ลอง {// 1 การเริ่มต้นคีย์คีย์ KypairGenerator KeypairGenerator = KeypairGenerator.getInstance ("DSA"); KeypairGenerator.initialize (512); KEYPAIR KEYPAIR = KEYPAIRENERATOR.GenerateKeyPair (); dsapublickey dsapublickey = (dsapublickey) keypair.getpublic (); dsaprivatekey dsaprivatekey = (dsaprivatekey) keypair.getPrivate (); // 2. ดำเนินการลายเซ็น PKCS8ENCODEDKEYSPEC PKCS8ENCODEDKEYSPEC = ใหม่ PKCS8ENCODEDKEYSPEC (DSAPRIVATEKEY.GETENCODED ()); keyFactory keyFactory = keyFactory.getInstance ("DSA"); PrivateKey Privateing = keyFactory.generatePrivate (PKCS8ENCODEDKEYSPEC); ลายเซ็น = Signature.getInstance ("sha1withdsa"); Signature.initsign (Private Key); signature.update (src.getBytes ()); ไบต์ [] result = signature.sign (); System.out.println ("JDK DSA Sign:" + hex.encodehexstring (ผลลัพธ์)); // 3. ตรวจสอบลายเซ็น X509ENCODEDKEYSPEC X509ENCODEDKEYSPEC = ใหม่ X509ENCODEDKEYSPEC (DSAPUBLICKEY.GETENCODED ()); keyFactory = keyFactory.getInstance ("DSA"); PublicKey = keyFactory.generatePublic (x509EncodedKeyspec); Signature = Signature.getInstance ("sha1withdsa"); Signature.initverify (PublicKey); signature.update (src.getBytes ()); บูลีนบูล = signature.Verify (ผลลัพธ์); System.out.println ("JDK DSA ตรวจสอบ:" + bool); } catch (exception e) {e.printstacktrace (); -4. ตระหนักถึงผลกระทบ
JDK DSA Sign: 302C0214310539F9E19EC98167A687EB4E8F91E7F47326BF021428080B7F0AD2CCFFC7146698D8D3644BA516
JDK DSA ยืนยัน: จริง
5. สถานการณ์แอปพลิเคชัน
PS: เพื่อนที่สนใจในการเข้ารหัสและถอดรหัสสามารถอ้างถึงเครื่องมือออนไลน์ของเว็บไซต์นี้:
เครื่องมือเข้ารหัส/ถอดรหัส 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", "การสอนเกี่ยวกับโครงสร้างข้อมูล Java และอัลกอริทึม", "บทสรุปของตัวละคร Java และทักษะการดำเนินการสตริง", "สรุปการดำเนินงานของ Java
ฉันหวังว่าบทความนี้จะเป็นประโยชน์กับการเขียนโปรแกรม Java ของทุกคน