欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    2022年电子商务安全技术实验 .pdf

    • 资源ID:28417010       资源大小:626.32KB        全文页数:13页
    • 资源格式: PDF        下载积分:4.3金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要4.3金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    2022年电子商务安全技术实验 .pdf

    键入文字 西安邮电大学电子商务安全技术实验一报告系部名称: 经济与管理学院学生姓名:韩振伟专业名称:电子商务班级:1101班学号:02112003 时间:2014-5-10 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 13 页 - - - - - - - - - 键入文字 一、实验目的 :通过 JAVA 语言,来实现对称密钥加密算法,非对称秘钥加密算法对信息的加密解密,通过实际操作加深学生对对称密钥加密、非对称秘钥加密解密的理解。二、实验内容:安装 JDK,配置 Java开发环境,加压 eclipse,编写对称秘钥的生成、对称密钥加密、解密的程序。编写非对称秘钥加密解密的程序,用私钥对信息进行加密,用公钥对信息进行解密,然后用公钥对信息进行加密,用私钥对信息进行解密。三、实验用到的主要技术及工具主要技术: Java、Bouncy Castle 主要工具: Eclipse四、开发步骤:1、安装 JDK ,配置 JAVA环境变量。2、解压 eclipse 。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 13 页 - - - - - - - - - 键入文字 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.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 key) 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 cipher = 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.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(); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 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.err.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 = new String(outputData); System.err.println(解密后 :t + outputStr); assertEquals(inputStr, outputStr); 5、使用生成的秘钥对“电子商务安全技术”进行加密。6、用第 4 步骤中生成的秘钥对第5 部中生成的加密后的内容进行解密。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 13 页 - - - - - - - - - 键入文字 7、使用 AES算法重复 4-6 步骤。package 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_ALGORITHM = 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); 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() 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 AESCoderTest 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 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(); System.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); 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.interfaces.RSAPrivateKey; import java.security.interfaces.RSAPublicKey; import java.security.spec.PKCS8EncodedKeySpec; import java.security.spec.X509EncodedKeySpec; import java.util.HashMap; import java.util.Map; import javax.crypto.Cipher; public abstract class RSACoder public static final String KEY_ALGORITHM = RSA; private static final String PUBLIC_KEY = RSAPublicKey; private static final String PRIVATE_KEY = RSAPrivateKey; private static final int KEY_SIZE = 512; public static byte decryptByPrivateKey(byte data, byte key) throws Exception PKCS8EncodedKeySpec pkcs8KeySpec = new PKCS8EncodedKeySpec(key); KeyFactory keyFactory = KeyFactory.getInstance(KEY_ALGORITHM); PrivateKey privateKey = keyFactory.generatePrivate(pkcs8KeySpec); Cipher cipher = Cipher.getInstance(keyFactory.getAlgorithm(); cipher.init(Cipher.DECRYPT_MODE, privateKey); return cipher.doFinal(data); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 13 页 - - - - - - - - - 键入文字 public static byte decryptByPublicKey(byte data, byte key) throws Exception X509EncodedKeySpec x509KeySpec = new X509EncodedKeySpec(key); KeyFactory keyFactory = KeyFactory.getInstance(KEY_ALGORITHM); PublicKey publicKey = keyFactory.generatePublic(x509KeySpec); Cipher cipher = Cipher.getInstance(keyFactory.getAlgorithm(); cipher.init(Cipher.DECRYPT_MODE, publicKey); return cipher.doFinal(data); public static byte encryptByPublicKey(byte data, byte key) throws Exception X509EncodedKeySpec x509KeySpec = new X509EncodedKeySpec(key); KeyFactory keyFactory = KeyFactory.getInstance(KEY_ALGORITHM); PublicKey publicKey = keyFactory.generatePublic(x509KeySpec); Cipher cipher = Cipher.getInstance(keyFactory.getAlgorithm(); cipher.init(Cipher.ENCRYPT_MODE, publicKey); return cipher.doFinal(data); public static byte encryptByPrivateKey(byte data, byte key) throws Exception PKCS8EncodedKeySpec pkcs8KeySpec = new PKCS8EncodedKeySpec(key); KeyFactory keyFactory = KeyFactory.getInstance(KEY_ALGORITHM); PrivateKey privateKey = keyFactory.generatePrivate(pkcs8KeySpec); Cipher cipher = Cipher.getInstance(keyFactory.getAlgorithm(); cipher.init(Cipher.ENCRYPT_MODE, privateKey); return cipher.doFinal(data); public static byte getPrivateKey(Map keyMap) throws Exception Key key = (Key) keyMap.get(PRIVATE_KEY); return key.getEncoded(); public static byte getPublicKey(Map keyMap) throws Exception Key key = (Key) keyMap.get(PUBLIC_KEY); return key.getEncoded(); public static Map initKey() throws Exception KeyPairGenerator keyPairGen = KeyPairGenerator .getInstance(KEY_ALGORITHM); keyPairGen.initialize(KEY_SIZE); KeyPair keyPair = keyPairGen.generateKeyPair(); RSAPublicKey publicKey = (RSAPublicKey) keyPair.getPublic(); RSAPrivateKey privateKey = (RSAPrivateKey) keyPair.getPrivate(); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 8 页,共 13 页 - - - - - - - - - 键入文字 Map keyMap = new HashMap(2); keyMap.put(PUBLIC_KEY, publicKey); keyMap.put(PRIVATE_KEY, privateKey); return keyMap; package org.zlex.chapter08_2; import static org.junit.Assert.*; import mons.codec.binary.Base64; import org.junit.Before; import org.junit.Test; import java.util.Map; public class RSACoderTest private byte publicKey; private byte privateKey; Before public void initKey() throws Exception Map keyMap = RSACoder.initKey(); publicKey = RSACoder.getPublicKey(keyMap); privateKey = RSACoder.getPrivateKey(keyMap); System.err.println(公钥: n + Base64.encodeBase64String(publicKey); System.err.println(私钥: n + Base64.encodeBase64String(privateKey); Test public void test() throws Exception System.err.println(n-私钥加密公钥解密 -); String inputStr1 = RSA加密算法 ; byte data1 = inputStr1.getBytes(); System.err.println(原文:n + inputStr1); / 加密byte encodedData1 = RSACoder.encryptByPrivateKey(data1, privateKey); System.err.println(加密后:n + Base64.encodeBase64String(encodedData1); byte decodedData1 = RSACoder.decryptByPublicKey(encodedData1, publicKey); String outputStr1 = new String(decodedData1); System.err.println(解密后 :n + outputStr1); assertEquals(inputStr1, outputStr1); System.err.println(n-公钥加密私钥解密 -); String inputStr2 = RSA Encypt Algorithm; byte data2 = inputStr2.getBytes(); System.err.println(原文:n + inputStr2); byte encodedData2 = RSACoder.encryptByPublicKey(data2, publicKey); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 9 页,共 13 页 - - - - - - - - - 键入文字 System.err.println(加密后:n + Base64.encodeBase64String(encodedData2); byte decodedData2 = RSACoder.decryptByPrivateKey(encodedData2, privateKey); String outputStr2 = new String(decodedData2); System.err.println(解密后 : + outputStr2); assertEquals(inputStr2, outputStr2); 9、用公钥对“电子商务安全技术RSA ”进行加密。10、用私钥对第九步中加密的信息进行解密。11、用生成的私钥对“电子商务安全技术RSA ”进行加密。12、用公钥对 11步中的信息进行解密。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 10 页,共 13 页 - - - - - - - - - 键入文字 13、请把你的公钥发送给你旁边的同学,让该同学用公钥进行加密,然后再把加密后的信息发送给你,你再用你的私钥对信息进行解密。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 11 页,共 13 页 - - - - - - - - - 键入文字 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 12 页,共 13 页 - - - - - - - - - 键入文字 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 13 页,共 13 页 - - - - - - - - -

    注意事项

    本文(2022年电子商务安全技术实验 .pdf)为本站会员(Q****o)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开