91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 5KB
    文件類型: .zip
    金幣: 1
    下載: 0 次
    發(fā)布日期: 2021-06-18
  • 語言: 其他
  • 標(biāo)簽: C#??

資源簡(jiǎn)介

rsa,dh算法過程的簡(jiǎn)易闡述,適合大學(xué)計(jì)算機(jī)課程設(shè)計(jì) rsa算法優(yōu)點(diǎn):不需要進(jìn)行密鑰傳遞,提高了安全性,可以進(jìn)行數(shù)字簽名認(rèn)證 dh算法優(yōu)點(diǎn):可以進(jìn)行密鑰交換

資源截圖

代碼片段和文件信息

/*
?*?To?change?this?license?header?choose?License?Headers?in?Project?Properties.
?*?To?change?this?template?file?choose?Tools?|?Templates
?*?and?open?the?template?in?the?editor.
?*/

package?rsa_ed;

/**
?*
?*?@author?judylily
?*/
import?java.security.Key;
import?java.security.KeyFactory;
import?java.security.KeyPair;
import?java.security.KeyPairGenerator;
import?java.security.PrivateKey;
import?java.security.PublicKey;
import?java.security.spec.PKCS8EncodedKeySpec;
import?java.security.spec.X509EncodedKeySpec;
import?java.util.HashMap;
import?java.util.Map;
import?javax.crypto.Cipher;
import?javax.crypto.KeyAgreement;
import?javax.crypto.SecretKey;
import?javax.crypto.interfaces.DHPrivateKey;
import?javax.crypto.interfaces.DHPublicKey;
import?javax.crypto.spec.DHParameterSpec;
import?javax.crypto.spec.SecretKeySpec;
?
public?abstract?class?DH?{
????/**
?????*?非對(duì)稱加密密鑰算法
?????*/
private?static?final?String?KEY_ALGORITHM?=?“DH“;
????/**
?????*?本地密鑰算法,即對(duì)稱加密密鑰算法
?????*?可選DES、DESede或者AES
?????*/
private?static?final?String?SELECT_ALGORITHM?=?“AES“;
/**
?*?密鑰長(zhǎng)度
?*/
private?static?final?int?KEY_SIZE?=?512;
//公鑰
private?static?final?String?PUBLIC_KEY?=?“DHPublicKey“;
//私鑰
private?static?final?String?PRIVATE_KEY?=?“DHPrivateKey“;

/**
?*?初始化甲方密鑰
?*?@return?Map?甲方密鑰Map
?*?@throws?Exception
?*/
public?static?Mapject>?initKey()?throws?Exception{
//實(shí)例化密鑰對(duì)生成器
KeyPairGenerator?keyPairGenerator?=?KeyPairGenerator.getInstance(KEY_ALGORITHM);
//初始化密鑰對(duì)生成器
keyPairGenerator.initialize(KEY_SIZE);
//生成密鑰對(duì)
KeyPair?keyPair?=?keyPairGenerator.generateKeyPair();
//甲方公鑰
DHPublicKey?publicKey?=?(DHPublicKey)keyPair.getPublic();
//甲方私鑰
DHPrivateKey?privateKey?=?(DHPrivateKey)keyPair.getPrivate();
//將密鑰對(duì)存儲(chǔ)在Map中
Mapject>?keyMap?=?new?HashMapject>(2);
keyMap.put(PUBLIC_KEY?publicKey);
keyMap.put(PRIVATE_KEY?privateKey);
return?keyMap;
}

/**
?*?初始化乙方密鑰
?*?@param?key?甲方公鑰
?*?@return?Map?乙方密鑰Map
?*?@throws?Exception
?*/
public?static?Mapject>?initKey(byte[]?key)?throws?Exception{
//解析甲方公鑰
//轉(zhuǎn)換公鑰材料
X509EncodedKeySpec?x509KeySpec?=?new?X509EncodedKeySpec(key);
//實(shí)例化密鑰工廠
KeyFactory?keyFactory?=?KeyFactory.getInstance(KEY_ALGORITHM);
//產(chǎn)生公鑰
PublicKey?pubKey?=?keyFactory.generatePublic(x509KeySpec);
//由甲方公鑰構(gòu)建乙方密鑰
DHParameterSpec?dhParameterSpec?=?((DHPublicKey)pubKey).getParams();
//實(shí)例化密鑰對(duì)生成器
KeyPairGenerator?keyPairGenerator?=?KeyPairGenerator.getInstance(KEY_ALGORITHM);
//初始化密鑰對(duì)生成器
keyPairGenerator.initialize(KEY_SIZE);
//產(chǎn)生密鑰對(duì)
KeyPair?keyPair?=?keyPairGenerator.generateKeyPair();
//乙方公鑰
DHPublicKey?publicKey?=?(DHPublicKey)?keyPair.getPublic();
//乙方私約
DHPrivateKey?privateKey?=?(DHPrivateKey)?keyPair.getPrivate();
//將密鑰對(duì)存儲(chǔ)在Map中
Mapject>?keyMap?=?new?HashMapject>(2);
keyMap.put(PUBLIC_KEY?publicKey);
keyMap.put(PRIVATE_KEY?privateKey);
return?keyMap;
}

/**
?*?加密
?*?@param?data?待加密數(shù)據(jù)
?*?@param?key?密鑰
?*?

?屬性????????????大小?????日期????時(shí)間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2020-06-17?07:36??rsa_dh_\
?????文件?????????210??2020-06-17?07:36??__MACOSX\._rsa_dh_
?????文件????????5955??2020-06-17?06:24??rsa_dh_\DH.java
?????文件????????3548??2020-06-17?06:38??rsa_dh_\DHTest.java
?????文件????????4245??2020-06-16?17:23??rsa_dh_\RSA.java

評(píng)論

共有 條評(píng)論