欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費電子書(shū)等14項超值服

開(kāi)通VIP
DSA數字簽名算法

一、DSA概述
為了確保數據傳輸的安全性,不得不采取一系列的安全技術(shù),如加密技術(shù)、數字簽名、身份認證、密鑰管理、防火墻、安全協(xié)議等。其中數字簽名就是實(shí)現網(wǎng)上交易安全的核心技術(shù)之一,它可以保證信息傳輸的保密性、數據交換的完整性、發(fā)送信息的不可否認性、交易者身份的確定性等。

有關(guān)數據類(lèi)型和數據轉換處理請參考上海尚學(xué)堂以下兩篇文章《數據類(lèi)型及其轉換》、《ajax+json數據處理

DSA(Digital Signature Algorithm,數字簽名算法,用作數字簽名標準的一部分),它是另一種公開(kāi)密鑰算法,它不能用作加密,只用作數字簽名。DSA使用公開(kāi)密鑰,為接受者驗證數據的完整性和數據發(fā)送者的身份。它也可用于由第三方去確定簽名和所簽數據的真實(shí)性。DSA算法的安全性基于解離散對數的困難性,這類(lèi)簽字標準具有較大的兼容性和適用性,成為網(wǎng)絡(luò )安全體系的基本構件之一。

數字簽名在ISO7498—2標準中定義為:“附加在數據單元上的一些數據,或是對數據單元所作的密碼變換,這種數據和變換允許數據單元的接收者用以確認數據單元來(lái)源和數據單元的完整性,并保護數據,防止被人(例如接收者)進(jìn)行偽造”。 數字簽名是通過(guò)一個(gè)單向函數對要傳送的信息進(jìn)行處理得到的用以認證信息來(lái)源并核實(shí)信息在傳送過(guò)程中是否發(fā)生變化的一個(gè)字母數字串。數字簽名提供了對信息來(lái)源的確定并能檢測信息是否被篡改。

二、DSA原理

處理過(guò)程: (采用雙重加密)
(1)使用SHA編碼將發(fā)送文件加密產(chǎn)生128bit的數字摘要;
(2)發(fā)送方用自己的專(zhuān)用密鑰對摘要再加密,形成數字簽名;
(3)將原文和加密的摘要同時(shí)傳給對方;
(4)接受方用發(fā)送方的公共密鑰對摘要解密,同時(shí)對收到的文件用SHA編碼加密產(chǎn)生同一摘要;
(5)將解密后的摘要和收到的文件在接受方重新加密產(chǎn)生的摘要相互對比,如果兩者一致,則說(shuō)明在傳送過(guò)程中信息沒(méi)有破壞和篡改。否則,則說(shuō)明信息已經(jīng)失去安全性和保密性。

三、JDK中對于DSA的實(shí)現
1、KeyPairGenerator

KeyPairGenerator 類(lèi)用于生成公鑰和私鑰對。密鑰對生成器是使用 getInstance 工廠(chǎng)方法(返回一個(gè)給定類(lèi)的實(shí)例的靜態(tài)方法)構造的。 

特定算法的密鑰對生成器可以創(chuàng )建能夠與此算法一起使用的公鑰/私鑰對。它還可以將特定于算法的參數與每個(gè)生成的密鑰關(guān)聯(lián)。
有兩種生成密鑰對的方式:與算法無(wú)關(guān)的方式和特定于算法的方式。

下面我們將按照指定RSA算法去生成秘鑰KeyPairGenerator.getInstance("RSA");

2、DSAPublicKey
DSA 公用密鑰的接口

3、DSAPublicKey
DSA 專(zhuān)用密鑰的接口

4、PKCS8EncodedKeySpec
PKCS8EncodedKeySpec類(lèi)繼承EncodedKeySpec類(lèi),以編碼格式來(lái)表示私鑰。
PKCS8EncodedKeySpec類(lèi)使用PKCS#8標準作為密鑰規范管理的編碼格式

5、Signature
Signature 類(lèi)用來(lái)為應用程序提供數字簽名算法功能。數字簽名用于確保數字數據的驗證和完整性。

在所有算法當中,數字簽名可以是 NIST 標準的 DSA,它使用 DSA 和 SHA-1??梢詫⑹褂?SHA-1 消息摘要算法的 DSA 算法指定為 SHA1withDSA。

四、實(shí)現
其中DSA的實(shí)現步驟類(lèi)似于我們之前學(xué)習的RSA數字簽名算法.

實(shí)現步驟

第一步:初始化化秘鑰組,生成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;
import java.security.interfaces.DSAPrivateKey;
import java.security.interfaces.DSAPublicKey;
import java.security.spec.PKCS8EncodedKeySpec;
import java.security.spec.X509EncodedKeySpec;
import javax.xml.bind.DatatypeConverter;

public class DSAUtil {

private static String src = "hello";public static void main(String[] args) {    jdkDSA();}public static void jdkDSA() {    // 1. 初始化 秘鑰    try {        KeyPairGenerator generator = KeyPairGenerator.getInstance("DSA");        generator.initialize(512);        KeyPair keyPair = generator.generateKeyPair();        DSAPublicKey dsaPublicKey = (DSAPublicKey) keyPair.getPublic();        DSAPrivateKey dsaPrivateKey = (DSAPrivateKey) keyPair.getPrivate();        // 2。 執行簽名        PKCS8EncodedKeySpec pkcs8EncodedKeySpec = new PKCS8EncodedKeySpec(dsaPrivateKey.getEncoded());        KeyFactory factory = KeyFactory.getInstance("DSA");        PrivateKey privateKey = factory.generatePrivate(pkcs8EncodedKeySpec);        Signature signature = Signature.getInstance("SHA1withDSA");        signature.initSign(privateKey);        signature.update(src.getBytes());        byte[] sign = signature.sign();System.out.println(DatatypeConverter.printHexBinary(sign));        // 驗證簽名        X509EncodedKeySpec x509EncodedKeySpec = new X509EncodedKeySpec(dsaPublicKey.getEncoded());        factory = KeyFactory.getInstance("DSA");        PublicKey publicKey = factory.generatePublic(x509EncodedKeySpec);        signature = Signature.getInstance("SHA1withDSA");        signature.initVerify(publicKey);        signature.update(src.getBytes());        boolean verify = signature.verify(sign);        System.out.println(verify);    } catch (Exception e) {        e.printStackTrace();    }}

}

五、DSA算法特點(diǎn)
1、DSA是以RSA為基礎形成的
2、java6提供了DSA的實(shí)現,但是java6只提供了SHA1withDSA的實(shí)現
3、bouncycastle擴展提供了其他的DSA實(shí)現方式
4、遵循“私鑰簽名,公鑰驗證”的原則

本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請點(diǎn)擊舉報。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
Android傳輸數據時(shí)加密詳解
網(wǎng)上數字簽名系統
RSA加密解密及數字簽名Java實(shí)現
非對稱(chēng)加密算法---加密學(xué)習筆記(四)
公鑰,私鑰和數字簽名這樣最好理解
Java加密和數字簽名編程快速入門(mén)
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導長(cháng)圖 關(guān)注 下載文章
綁定賬號成功
后續可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服

欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久