亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
  • 使用KeyPair、KeyFactory都可以產生密鑰對. DH: 由甲方公鑰產生乙方密鑰對時候,需要使用X509EncodedKeySpec進行密鑰轉換. 在構造本地密鑰過程中,需要使用X509EncodedKeySpec分別對公鑰與密鑰進行轉換. RSA: 在加密、解密之前都需要使用X509EncodedKeySpec進行密鑰轉換.
    查看全部
  • RSA算法是第一個能同時用于加密和數字簽名的算法 目前還沒有被破解,是使用最多的非對稱加密算法. RSA算法支持公鑰加密、私鑰解密.私鑰加密、公鑰解密. 有些算法只規定了公鑰加密、私鑰解密. RSA密鑰長度:512~65536(64整數倍). JDK實現RSA算法的密鑰默認長度為1024,BC則是2048.
    查看全部
  • //根據一方公鑰生成另一方密鑰對 public static Map<String,Object> generateKey(byte[] key){ //解析甲方的公鑰、轉換公鑰的材料 X509EncodedKeySpec x509KeySpec=new X509EncodedKeySpec(key); //實例化密鑰工廠 KeyFactory keyFactory=KeyFactory.getInstance("DH"); //產生轉換后的公鑰,該公鑰是甲方的 PublicKey pubKey=keyFactory.generatePublic(x509KeySpec); //由甲方的公鑰構造乙方密鑰 DHParameterSpec dhParamSpec=((DHPublicKey)pubKey).getParams(); //實例化密鑰生成器 KeyPairGenerator keyPairGenerator=KeyPairGenerator.getInstance(keyFactory.getAlgorithm()); //初始化密鑰生成器 keyPairGenerator.initialize(dhParamSpec); //產生密鑰對 KeyPair keyPair=keyPairGenerator.genKeyPair(); //乙方公鑰 DHPublicKey publicKey=(DHPublicKey)keyPair.getPublic(); //乙方私鑰 DHPrivateKey privateKey=(DHPrivateKey)keyPair.getPrivate(); //將密鑰存儲在Map中 Map<String,Object> keyMap=new HashMap<String,Object>(); keyMap.put(PUBLIC_KEY, publicKey); keyMap.put(PRIVATE_KEY, privateKey); return keyMap; }
    查看全部
    0 采集 收起 來源:DH算法實現

    2018-03-22

  • //初始化甲方密鑰對. public static Map<String,Object> generateKey(){ //實例化密鑰對生成器 KeyPairGenerator keyPairGenerator=KeyPairGenerator.getInstance("DH"); //初始化密鑰對生成器 keyPairGenerator.initialize(KEY_SIZE); //生成密鑰對 KeyPair keyPair=keyPairGenerator.generateKeyPair(); //甲方公鑰 DHPublicKey publicKey=(DHPublicKey) keyPair.getPublic(); //甲方私鑰 DHPrivateKey privateKey=(DHPrivateKey) keyPair.getPrivate(); //將密鑰存儲在map中 Map<String,Object> keyMap=new HashMap<String,Object>(); keyMap.put(PUBLIC_KEY, publicKey); keyMap.put(PRIVATE_KEY, privateKey); return keyMap; }
    查看全部
    0 采集 收起 來源:DH算法實現

    2018-03-22

  • DH密鑰交換
    查看全部
  • 密鑰構建:KeyAgreement 1.static KeyAgreement getInstance(String algorithm) 生成實現指定密鑰一致算法的KeyAgreement對象 2.static KeyAgreement getInstance(String algorithm,Provider provider) 為來自指定提供程序的指定密鑰一致算法生成一個KeyAgreement對象
    查看全部
  • 發送方密鑰 KeyPair = PublicKey + PrivateKey(密鑰對,用來存放公鑰和私鑰) PublixKey 公鑰 KeyPairGenerator ==> 通過這個類可以生成KeyPair KeyPairGenerator.getInstance("DH"); //也可以有第二個參數,第二個參數是provider 接收方密鑰 KeyFactory 來生成密鑰,包括公鑰(generatePublic())和私鑰(generatePrivete()) X509EncodedKeySpec 他是根據ASN.1標準進行密鑰編碼的類 DHPublicKey PublicKey的一種具體形式 DHParameterSpec DH算法中使用的參數的集合 KeyPairGenerator PrivateKey 密鑰構建 KeyAgreement 該類提供密鑰一致性(或者密鑰交換)協議的功能 SecretKey KeyFactory X509EncodedKeySpec PublixKey 加密解密 Cipher 提供加解密的功能 Cipher cipher=Cipher.getInstance("DES"):
    查看全部
  • DH密鑰交換中的方法
    查看全部
  • KeyAgreement類用于生成本地密鑰(提供密鑰協定或密鑰交換協議的功能).使用其getInstance()靜態方法創建實例,參數是算法名,指定生成的本地密鑰符合某種特定算法. KeyAgreement類的init()方法用于給定密鑰初始化此密鑰協定.doPhase()方法用于用給定密鑰執行此密鑰協定的下一個階段.兩個方法的參數都是Key類型,即使用公鑰、私鑰來初始化密鑰協定. KeyAgreement類的generateSecret()方法創建本地密鑰,參數是對稱加密算法名稱.返回SecretKey類型.
    查看全部
  • DH密鑰交換
    查看全部
  • KeyPairGenerator:密鑰對生成器 KeyGenerator:密鑰生成器 使用KeyPairGenerator的getInstance()靜態方法創建實例,參數是算法名稱.指定密鑰對生成器生成指定算法的密鑰對. 使用KeyPairGenerator的initialize()方法初始化密鑰的長度. 使用KeyPairGenerator的generateKeyPair()方法創建KeyPair實例.一個KeyPair實例表示一對密鑰,即一個密鑰對.包括公鑰與私鑰. KeyPair的getPublic()方法返回PublicKey類型(公鑰). getPrivate()方法返回PrivateKey類型(私鑰). DHPublicKey接口、DHPrivateKey接口分別繼承PublicKey接口與PrivateKey接口. X509EncodedKeySpec實例作用是把密鑰按照X.509標準進行編碼. 直接new一個實例,構造方法參數是密鑰. KeyFactory是密鑰工廠,SecretKeyFactory也是密鑰工廠.但是前者可以產生密鑰對,即公鑰、私鑰. 使用KeyFactory的getInstance()靜態方法返回一個KeyFactory實例,參數指定算法名,指定密鑰工廠產生的密鑰是符合某種特定算法. 使用KeyFactory的generatePublic()方法可以生成一個公鑰,參數是X509EncodedKeySpec的實例.返回PublicKey. 使用DHPublicKey的getParams()方法返回DHParameterSpec實例. DHParameterSpec:此類指定隨同DH算法使用的參數集合,用于通過一方的公鑰生成另一方的密鑰對. 使用KeyPairGenerator的initialize()初始化方法時,參數還可以是DHParameterSpec的實例.用于通過一方公鑰生成密鑰對.
    查看全部
  • JAVA DH加密算法 DH算法的默認密鑰長度是1024,密鑰長度必須是64的倍數,在512到1024位之間. DH是一種適基于密鑰一致協議的加密算法 密鑰一致協議就是允許兩名用戶在公開媒體上交換信息以生成"一致"的、可以共享的密鑰. 由甲方產出一對密鑰(公鑰、私鑰),乙方依照甲方公鑰產生乙方密鑰對(公鑰、私鑰),以此為基線作為數據傳輸保密基礎.同時雙方使用同一種對稱加密算法構建本地密鑰(SecretKey)對數據加密. 在互通了本地密鑰算法后,甲乙雙方公開自己的公鑰,使用對方的公鑰和剛才產生的私鑰加密數據,同時可以使用對方的公鑰和自己的私鑰對數據解密. 流程分析: 1.甲方構建密鑰對,將公鑰公布給乙方,將私鑰保留. 乙方通過甲方公鑰構建密鑰對,將公鑰公布給甲方,將私鑰保留. 2.甲方使用自己私鑰、乙方公鑰與約定數據對稱加密算法構建本地密鑰,然后通過本地密鑰加密數據,發送給乙方加密后的數據. 乙方使用自己私鑰、甲方公鑰與約定數據對稱加密算法構建本地密鑰,然后通過本地密鑰對數據解密. 3.乙方使用自己私鑰、甲方公鑰與約定數據對稱加密算法構建本地密鑰,然后通過本地密鑰加密數據,發送給甲方加密后的數據. 甲方使用私鑰、乙方公鑰與約定數據對稱加密算法構建本地密鑰,然后通過本地密鑰對數據解密.
    查看全部
  • DH Diffie-Hellman算法(D-H算法),密鑰一致協議。是由公開密鑰密碼體制的奠基人Diffie和Hellman所提出的一種思想。簡單的說就是允許兩名用戶在公開媒體上交換信息以生成"一致"的、可以共享的密鑰。換句話說,就是由甲方產出一對密鑰(公鑰、私鑰),乙方依照甲方公鑰產生乙方密鑰對(公鑰、私鑰)。以此為基線,作為數據傳輸保密基礎,同時雙方使用同一種對稱加密算法構建本地密鑰(SecretKey)對數據加密。這樣,在互通了本地密鑰(SecretKey)算法后,甲乙雙方公開自己的公鑰,使用對方的公鑰和剛才產生的私鑰加密數據,同時可以使用對方的公鑰和自己的私鑰對數據解密。不單單是甲乙雙方兩方,可以擴展為多方共享數據通訊,這樣就完成了網絡交互數據的安全通訊!該算法源于中國的同余定理——中國馀數定理。 流程分析: 1.甲方構建密鑰對兒,將公鑰公布給乙方,將私鑰保留;雙方約定數據加密算法;乙方通過甲方公鑰構建密鑰對兒,將公鑰公布給甲方,將私鑰保留。 2.甲方使用私鑰、乙方公鑰、約定數據加密算法構建本地密鑰,然后通過本地密鑰加密數據,發送給乙方加密后的數據;乙方使用私鑰、甲方公鑰、約定數據加密算法構建本地密鑰,然后通過本地密鑰對數據解密。 3.乙方使用私鑰、甲方公鑰、約定數據加密算法構建本地密鑰,然后通過本地密鑰加密數據,發送給甲方加密后的數據;甲方使用私鑰、乙方公鑰、約定數據加密算法構建本地密鑰,然后通過本地密鑰對數據解密。 http://blog.csdn.net/sunny_sailor/article/details/7445649
    查看全部
  • 非對稱加密算法的特點: 算法強度復雜、安全性依賴于算法與密鑰.但是由于算法復雜,使得非對稱算法加解密速度沒有對稱算法加解密的速度快. 對稱密鑰體制中只有一種密鑰,并且是非公開的,如果要解密就得讓對方知道密鑰.所以保證其安全性就是保證密鑰的安全. 非對稱密鑰體制有兩種密鑰,其中一個是公開的,這樣就可以不需要像對稱密碼那樣向對方傳輸密鑰了.因此安全性就大了很多. 對稱密鑰與非對稱密鑰比較: 算法復雜度:對稱密鑰<非對稱密鑰 加解密速度:對稱密鑰>非對稱密鑰 安全性:對稱密鑰<非對稱密鑰
    查看全部
    0 采集 收起 來源:DH算法概述

    2018-03-22

  • Java實現非對稱加密——概述 Ps1:非對稱加密算法概述,非對稱主要是相對于對稱加密算法而言的,對稱加密算法有一個密鑰和一個解鑰,非對稱算法有一個公鑰和一個私鑰,這兩個共同組成一個解鑰,才能實現解密。 Ps2:RSA是可以雙向加密的:私鑰加密,公鑰解密;公鑰加密,私鑰解密。 DH 秘鑰交換算法,算是非對稱加密算法的起源 RSA 基于因子分解,應用最廣 RSA是可以雙向加密的,私鑰加密 公鑰解密;公鑰加密,私鑰解密,是目前世界上使用最廣的非對稱加密算法 ELGamal 基于離散對數 ECC 橢圓曲線加密 非對稱加密算法 因為加密和解密使用的是兩個不同的密鑰,所以這種算法叫作非對稱加密算法. 非對稱加密算法需要兩個密鑰:公開密鑰和私有密鑰.公開密鑰與私有密鑰是一對的. 如果用公開密鑰對數據進行加密,只有用對應的私有密鑰才能解密. 如果用私有密鑰對數據進行加密,那么只有用對應的公開密鑰才能解密(某些算法有提供). 非對稱加密算法實現機密信息交換的基本過程是: 甲方生成一對密鑰并將其中的一把作為公用密鑰向其它方公開,得到該公用密鑰的乙方使用該密鑰對信息進行加密后再發送給甲方. 甲方再用自己保存的另一把專用密鑰對加密后的信息進行解密. 另一方面,甲方可以使用乙方提供的公鑰對信息進行加密后再發送給乙方,乙方再用自己的私匙對數據進行解密. DH-密鑰交換算法是非對稱加密算法的起源. RSA-基于因子分解算法,是應用最多的非對稱加密算法.
    查看全部
    0 采集 收起 來源:概述

    2016-10-19

舉報

0/150
提交
取消
課程須知
JAVA加解密是一個系列的課程,為了更好的學習本門課程,請小伙伴們學習非對稱加密算法前,先學習下網站中的《JAVA實現Base64加密》以及《JAVA實現對稱加密》兩門課程。
老師告訴你能學到什么?
1、掌握非對稱加密算法在Java中的實現 2、了解非對稱加密算法的應用場景

微信掃碼,參與3人拼團

微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號

友情提示:

您好,此課程屬于遷移課程,您已購買該課程,無需重復購買,感謝您對慕課網的支持!