- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
密码及应用程序编写与测试分
析实验报告
密码及应用程序编写与测试分析实验报告
实验目的 通过编写网络加密聊天程序,使开发者了解到密码学在网 络传输数据过程中的实际应用,尤其是 RSA 密钥对和分发和
DES加密解密的过程,使得开发者对密码加密过程有一定的了 解。
实验容 本实验为第一个实验作业,运用流行语言编写一个网络加 密聊天程序,通过 Socket 编程将 DES 加密算法应用于网络通 信,并使用 RSA 算法自动分配密钥,通过设计好的界面来,验 证自动生成的密钥和加解密正确的结果。具体容如下:
1、客户端和服务器建立连接后,客户端生成一个随机 DES
密钥; 2、服务器端生成一个随机的 RSA 公私钥对,并将公钥 发给客户端; 3、客户端收到公钥后加密 DES 密钥,发给服务 器;服务器解密; 4、客户端和服务器使用 DES 密钥通信,进 行聊天会话。
实验环境
实验环境使用 Windows10+eclipse+Socket 编程。最终 结果以客户端和服务器端的界面体现
1、创建界面:(
(1)通过 eclipse 的插件 windowbuilder
四、实验流程
四、
实验流程
建立聊天程序界面(GUI),具体界面设计如下图所示:
step2= R弘应钥对生咸 step4= R£碉密
2、通过socket编程建立客户端与服务器端的连接。具体
代码如下:
i : serverGui() { initialize(); this?frame? setVisible(true); try {
ss - ServerSacket(5858)
while (true) {
y {
s = ££ ?呂匚cept()
dos DataOutput5tream(s get0utput5tream())
dis DataInputStream(s gmtInpu七5七孑亡白皿())
?hile 円){ receiveDate()
}
} finally {
if (宀 nUll)
s.cloe();
}
}
} catch (IQException e) {
e printSta匚kTra“();
} finally {
if (S5 != null)
try {
ss,close();
} catch (IOException e) {
e printStackTrace()
服务器端socket
:clien^Gui^) {
initialize();
thi* frame setVisib2e(ti :);
try {
s = new SGcketCliZ-O^.l1 ? 5858);
dos DataOutputStream(s getOutputSt ream())
di Dz七alnputStream(s getlnputS七厂巳皿0)
?hile (true)戈 reeiveDat:e()
}
} c w (Un kn ownHo st Ex c e pt ion e) {
e printStackTrace()
} catc (IOException g) {
@ printStackTrace()
} Anally {
if @ 上 null)
七巧{ s close()
} cal ch (TOEx ept ion e) {
@ printStackTrace()
}
客户端端socket
3、创建实验要求的库函数。
)DES随机秘钥生成:
String initKfiy(£+ring seed)
5已匚ureRandom frecureRandon)
Exception {
(seed r ) { secureRandom
{
secureRandom
SeenreRandom(decrypt ^^4(seed))
Secti re Random()
KeyGetiera t or kg KeyGene rat or gi:Insi:ctnc^ {ALGORITHM) kg init(secureRandom)
Secret Key secre±Key kg gen e rat:EKey()
encpyptB45F64(secrctKey getEncoded())
(2) RSA公钥对生成:
GreatRSAKeyPairt) {
{
Map String publicKey priv^teKey textArea append(尺5A公钥: publicK^ 十n11〉
Object keyMap RSAUtil . )
RSAUtil gstPublicKEj/CkEyMzp)
RSAUtil (k^yMap)
err. prirrtln(4J钥:\n\r + publicKey);
textArea a
文档评论(0)