RSA和DES加密解密实验研讨.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
RSA和DES加密解密实验研讨

实验一 加密解密实验 一、实验目的: 通过JAVA语言,来实现对称密钥加密算法,非对称秘钥加密算法对信息的加密解密,通过实际操作加深学生对对称密钥加密、非对称秘钥加密解密的理解。 二、实验内容: 安装JDK,配置Java开发环境,加压eclipse,编写对称秘钥的生成、对称密钥加密、解密的程序。编写非对称秘钥加密解密的程序,用私钥对信息进行加密,用公钥对信息进行解密,然后用公钥对信息进行加密,用私钥对信息进行解密。 三、实验用到的主要技术及工具 主要技术:Java、Bouncy CastleEclipse 四、开发步骤: 1、安装JDK,配置JAVA环境变量。 2、解压eclipse。 3、在eclipse中新建项目 4、编写使用DES算法生成秘钥的程序。 1.初始化密钥,并对密钥进行Base64位编码 使用生成的秘钥对“电子商务安全技术”进行加密。 加密,使用生成的密钥和明文作为参数进行传递,并使用密钥对明文加密 以下是对明文进行初始化,在第4点中已对密钥初始化 已下是加密算法 用第4步骤中生成的秘钥对第5部中生成的加密后的内容进行解密。 inputData为第五步中出现的加密过后的明文,由于DES 为对称加密,所以解密密钥key和加密密钥key使用的是同一把密钥 以下是解密算法: 以下是DES加密与解密算法的结果 使用AES算法重复4-6步骤。 8、使用RSA算法生成公钥和私钥。 对密钥进行初始化 取得公钥 取得私钥 对密钥进行编码并输出到控制台 获取明文,并对明文进行编码 用公钥对“电子商务安全技术RSA”进行加密。 以下是加密算法 用私钥对第九步中加密的信息进行解密。 私钥解密: 以下是解密算法 用生成的私钥对“电子商务安全技术RSA”进行加密。 12、用公钥对11步中的信息进行解密。 私钥加密算法 公钥解密算法: 以下是其中一次进行加密与解密的情况 请把你的公钥发送给你旁边的同学,让该同学用公钥进行加密,然后再把加密后的信息发送给你,你再用你的私钥对信息进行解密。 使用其中的一对公钥和私钥,并对公钥加密的数据进行私钥解密,对私钥加密的数据进行公钥解密 以下是固定公钥和私钥,公钥加密的密文,私钥加密的密钥 以公钥解密为例 对私钥加密的密文进行解码,同时也对传输过来的公钥进行同样的解码 byte[] encodedData1 = Base64.decodeBase64(PriMi); publicKey = Base64.decodeBase64(pubKey); 使用解码的密文和公钥对数据进行解密 byte[] pri_pub_Data = Demo.decryptByPublicKey(encodedData1, publicKey); 以下附上完整代码: DESDemo.java package cn.xupt.YVCB.code; import java.security.Key; import java.security.Security; import javax.crypto.Cipher; import javax.crypto.KeyGenerator; import javax.crypto.SecretKey; import javax.crypto.SecretKeyFactory; import javax.crypto.spec.DESKeySpec; import mons.codec.binary.Base64; import vider.BouncyCastleProvider; public class DESDemo { //加密算法 public static final String KEY_ALGORITHM = DES; public static final String CIPHER_ALGORITHM = DES/ECB/PKCS5Padding; /** * 对密钥进行初始化,并返回字节码 * @return * @throws Exception */ public static byte[] initKey() throws Exception{ KeyGenerator kg = KeyGenerator.getInstance(KEY_ALGORITHM); kg.init(64); //初始化的密钥的长度 SecretKey secretKey = kg.generateKey(); return secretKey.getEncoded(); } pu

文档评论(0)

yy558933 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档