2022年电子商务安全技术实验 .pdf
《2022年电子商务安全技术实验 .pdf》由会员分享,可在线阅读,更多相关《2022年电子商务安全技术实验 .pdf(13页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、键入文字 西安邮电大学电子商务安全技术实验一报告系部名称: 经济与管理学院学生姓名:韩振伟专业名称:电子商务班级:1101班学号:02112003 时间:2014-5-10 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 13 页 - - - - - - - - - 键入文字 一、实验目的 :通过 JAVA 语言,来实现对称密钥加密算法,非对称秘钥加密算法对信息的加密解密,通过实际操作加深学生对对称密钥加密、非对称秘钥加密解密的理解。二、实验内容:安装 JDK,配置 Ja
2、va开发环境,加压 eclipse,编写对称秘钥的生成、对称密钥加密、解密的程序。编写非对称秘钥加密解密的程序,用私钥对信息进行加密,用公钥对信息进行解密,然后用公钥对信息进行加密,用私钥对信息进行解密。三、实验用到的主要技术及工具主要技术: Java、Bouncy Castle 主要工具: Eclipse四、开发步骤:1、安装 JDK ,配置 JAVA环境变量。2、解压 eclipse 。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 13 页 - - - - - -
3、- - - 键入文字 3、在 eclipse中新建项目名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 13 页 - - - - - - - - - 键入文字 4、编写使用 DES 算法生成秘钥的程序。package org.zlex.chapter07_1; import java.security.Key; import java.security.SecureRandom; import javax.crypto.Cipher; import javax.crypto
4、.KeyGenerator; import javax.crypto.SecretKey; import javax.crypto.SecretKeyFactory; import javax.crypto.spec.DESKeySpec; public abstract class DESCoder public static final String KEY_ALGORITHM = DES; public static final String CIPHER_ALGORITHM = DES/ECB/PKCS5PADDING; private static Key toKey(byte ke
5、y) throws Exception DESKeySpec dks = new DESKeySpec(key); SecretKeyFactory keyFactory = SecretKeyFactory .getInstance(KEY_ALGORITHM); SecretKey secretKey = keyFactory.generateSecret(dks); return secretKey; public static byte decrypt(byte data, byte key) throws Exception Key k = toKey(key); Cipher ci
6、pher = Cipher.getInstance(CIPHER_ALGORITHM); cipher.init(Cipher.DECRYPT_MODE, k); return cipher.doFinal(data); public static byte encrypt(byte data, byte key) throws Exception Key k = toKey(key); Cipher cipher = Cipher.getInstance(CIPHER_ALGORITHM); cipher.init(Cipher.ENCRYPT_MODE, k); return cipher
7、.doFinal(data); public static byte initKey() throws Exception KeyGenerator kg = KeyGenerator.getInstance(KEY_ALGORITHM); kg.init(56, new SecureRandom(); SecretKey secretKey = kg.generateKey(); return secretKey.getEncoded(); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - -
8、- 第 4 页,共 13 页 - - - - - - - - - 键入文字 package org.zlex.chapter07_1; import static org.junit.Assert.*; import mons.codec.binary.Base64; import org.junit.Test; public class DESCoderTest Test public final void test() throws Exception String inputStr = DES; byte inputData = inputStr.getBytes(); System.e
9、rr.println(原文:t + inputStr); byte key = DESCoder.initKey(); System.err.println(密钥:t + Base64.encodeBase64String(key); inputData = DESCoder.encrypt(inputData, key); System.err.println(加密后 :t + Base64.encodeBase64String(inputData); byte outputData = DESCoder.decrypt(inputData, key); String outputStr =
10、 new String(outputData); System.err.println(解密后 :t + outputStr); assertEquals(inputStr, outputStr); 5、使用生成的秘钥对“电子商务安全技术”进行加密。6、用第 4 步骤中生成的秘钥对第5 部中生成的加密后的内容进行解密。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 13 页 - - - - - - - - - 键入文字 7、使用 AES算法重复 4-6 步骤。packag
11、e org.zlex.chapter07_3; import java.security.Key; import javax.crypto.Cipher; import javax.crypto.KeyGenerator; import javax.crypto.SecretKey; import javax.crypto.spec.SecretKeySpec; public abstract class AESCoder public static final String KEY_ALGORITHM = AES; public static final String CIPHER_ALGO
12、RITHM = AES/ECB/PKCS5Padding; private static Key toKey(byte key) throws Exception SecretKey secretKey = new SecretKeySpec(key, KEY_ALGORITHM); return secretKey; public static byte decrypt(byte data, byte key) throws Exception Key k = toKey(key); Cipher cipher = Cipher.getInstance(CIPHER_ALGORITHM);
13、cipher.init(Cipher.DECRYPT_MODE, k); return cipher.doFinal(data); public static byte encrypt(byte data, byte key) throws Exception Key k = toKey(key); Cipher cipher = Cipher.getInstance(CIPHER_ALGORITHM); cipher.init(Cipher.ENCRYPT_MODE, k); return cipher.doFinal(data); public static byte initKey()
14、throws Exception KeyGenerator kg = KeyGenerator.getInstance(KEY_ALGORITHM); kg.init(128); SecretKey secretKey = kg.generateKey(); return secretKey.getEncoded(); package org.zlex.chapter07_3; import static org.junit.Assert.*; import mons.codec.binary.Base64; import org.junit.Test; public class AESCod
15、erTest 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 13 页 - - - - - - - - - 键入文字 Test public final void test() throws Exception String inputStr = AES; byte inputData = inputStr.getBytes(); System.err.println(原文:t + inputStr); byte key = AESCoder.initKey(); Sys
16、tem.err.println(密钥:t + Base64.encodeBase64String(key); inputData = AESCoder.encrypt(inputData, key); System.err.println(加密后 :t + Base64.encodeBase64String(inputData); byte outputData = AESCoder.decrypt(inputData, key); String outputStr = new String(outputData); System.err.println(解密后 :t + outputStr)
17、; assertEquals(inputStr, outputStr); 8、使用 RSA算法生成公钥和私钥。package org.zlex.chapter08_2; 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.i
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022年电子商务安全技术实验 2022 电子商务 安全技术 实验
限制150内