3des,为什么3des的中间部分采用了解密而不是加密 -pg电子游戏试玩平台网站

来源:整理 时间:2023-08-15 05:36:22 编辑:智能门户 手机版

本文目录一览

1,为什么3des的中间部分采用了解密而不是加密

这样做的好处是当你用同样的key(即k1=k2=k3=k)带入e(k3,d(k2,e(k1,m)))时,里面两层的d和e消去,3des就会退化为一个普通的des。

为什么3des的中间部分采用了解密而不是加密

2,到底什么是3倍des

就是价钱贵三倍再看看别人怎么说的。
就是3des,你可以理解为使用3个不同的密钥对每个明文数据块进行了3次des加密:3des加密过程为:c=ek3(dk2(ek1(m)))3des解密过程为:m=dk1(ek2(dk3(c))e表示加密算法,d表示解密算法。

到底什么是3倍des

3,什么是mac 3eds算法

mac是在cpu卡通讯中的一种数据保护的算法方式;就是将要传松的数据通过mac计算,产生mac码跟在数据串后面,发送给设备,设备接收到数据后,用相同的算法验证下mac是否正确,如果正确,就行进数据处理,否则就提示mac码错误;3des的mac码计算一般是把数据分段成8字节的来进行运算,的,不足8字节的需要补齐,首先用第一个数据块和初试数据进行异或,然后用左8字节的密码进行des加密,将结果和第二包数据异或,在用左8字节的密码加密,知道最后一包数据,然后在右8字节的密码des解密,然后再用左8字节的密码进行des加密得到8个字节的mac码.
不明白啊 = =!

什么是mac 3eds算法

4,高分求关于java的3des加密的bug解决办法要求能用16位key并且不

在java中调用sun公司提供的3des加密解密算法时,需要使用到$java_home/jre/lib/目录下如下的4个jar包: jce.jar security/us_export_policy.jar security/local_policy.jar ext/sunjce_provider.jar java运行时会自动加载这些包,因此对于带main函数的应用程序不需要设置到classpath环境变量中。对于web应用,不需要把这些包加到web-inf/lib目录下。 以下是java中调用sun公司提供的3des加密解密算法的样本代码: 加密解密代码 import java.security.security; import javax.crypto.cipher; import javax.crypto.secretkey; import javax.crypto.spec.secretkeyspec; /*字符串 desede(3des) 加密*/ public class threedes /** * @param args在java中调用sun公司提供的3des加密解密算法时,需要使 * 用到$java_home/jre/lib/目录下如下的4个jar包: *jce.jar *security/us_export_policy.jar *security/local_policy.jar *ext/sunjce_provider.jar */ private static final string algorithm ="desede"; //定义加密算法,可用 des,desede,blowfish //keybyte为加密密钥,长度为24字节 //src为被加密的数据缓冲区(源) public static byte[] encryptmode(byte[] keybyte,byte[] src) try //生成密钥 secretkey deskey = new secretkeyspec(keybyte, algorithm); //加密 cipher c1 = cipher.getinstance(algorithm); c1.init(cipher.encrypt_mode, deskey); return c1.dofinal(src);//在单一方面的加密或解密 } catch (java.security.nosuchalgorithmexception e1) // todo: handle exception e1.printstacktrace(); }catch(javax.crypto.nosuchpaddingexception e2) e2.printstacktrace(); }catch(java.lang.exception e3) e3.printstacktrace(); } return null; } //keybyte为加密密钥,长度为24字节 //src为加密后的缓冲区 public static byte[] decryptmode(byte[] keybyte,byte[] src) try //生成密钥 secretkey deskey = new secretkeyspec(keybyte, algorithm); //解密 cipher c1 = cipher.getinstance(algorithm); c1.init(cipher.decrypt_mode, deskey); return c1.dofinal(src); } catch (java.security.nosuchalgorithmexception e1) // todo: handle exception e1.printstacktrace(); }catch(javax.crypto.nosuchpaddingexception e2) e2.printstacktrace(); }catch(java.lang.exception e3) e3.printstacktrace(); } return null; } //转换成十六进制字符串 public static string byte2hex(byte[] b) string hs=""; string stmp=""; for(int n=0; nstmp = (java.lang.integer.tohexstring(b[n]& 0xff)); if(stmp.length()==1){ hs = hs "0" stmp; }else{ hs = hs stmp; } if(n } return hs.touppercase(); } public static void main(string[] args) { // todo auto-generated method stub //添加新安全算法,如果用jce就要把它添加进去 security.addprovider(new com.sun.crypto.provider.sunjce()); final byte[] keybytes = {0x11, 0x22, 0x4f, 0x58, (byte)0x88, 0x10, 0x40, 0x38, 0x28, 0x25, 0x79,0x51, (byte)0xcb, (byte)0xdd, 0x55, 0x66, 0x77, 0x29, 0x74, (byte)0x98, 0x30, 0x40, 0x36, (byte)0xe2 }; //24字节的密钥 string szsrc = "this is a 3des test. 测试"; system.out.println("加密前的字符串:" szsrc); byte[] encoded = encryptmode(keybytes,szsrc.getbytes()); system.out.println("加密后的字符串:" new string(encoded)); byte[] srcbytes = decryptmode(keybytes,encoded); system.out.println("解密后的字符串:" (new string(srcbytes))); } }
你好!代码发出来希望对你有所帮助,望采纳。

5,如何用java进行3des加密解密

这里是例子,直接拿来用就可以了。package com.nnff.des; import java.security.security; import javax.crypto.cipher; import javax.crypto.secretkey; import javax.crypto.spec.secretkeyspec; /*字符串 desede(3des) 加密 * ecb模式/使用pkcs7方式填充不足位,目前给的密钥是192位 * 3des(即triple des)是des向aes过渡的加密算法(1999年,nist将3-des指定为过渡的 * 加密标准),是des的一个更安全的变形。它以des为基本模块,通过组合分组方法设计出分组加 * 密算法,其具体实现如下:设ek()和dk()代表des算法的加密和解密过程,k代表des算法使用的 * 密钥,p代表明文,c代表密表,这样, * 3des加密过程为:c=ek3(dk2(ek1(p))) * 3des解密过程为:p=dk1((ek2(dk3(c))) * */ public class threedes /** * @param args在java中调用sun公司提供的3des加密解密算法时,需要使 * 用到$java_home/jre/lib/目录下如下的4个jar包: *jce.jar *security/us_export_policy.jar *security/local_policy.jar *ext/sunjce_provider.jar */ private static final string algorithm = "desede"; //定义加密算法,可用 des,desede,blowfish //keybyte为加密密钥,长度为24字节 //src为被加密的数据缓冲区(源) public static byte[] encryptmode(byte[] keybyte,byte[] src) try //生成密钥 secretkey deskey = new secretkeyspec(keybyte, algorithm); //加密 cipher c1 = cipher.getinstance(algorithm); c1.init(cipher.encrypt_mode, deskey); return c1.dofinal(src);//在单一方面的加密或解密 } catch (java.security.nosuchalgorithmexception e1) // todo: handle exception e1.printstacktrace(); }catch(javax.crypto.nosuchpaddingexception e2) e2.printstacktrace(); }catch(java.lang.exception e3) e3.printstacktrace(); } return null; } //keybyte为加密密钥,长度为24字节 //src为加密后的缓冲区 public static byte[] decryptmode(byte[] keybyte,byte[] src) try //生成密钥 secretkey deskey = new secretkeyspec(keybyte, algorithm); //解密 cipher c1 = cipher.getinstance(algorithm); c1.init(cipher.decrypt_mode, deskey); return c1.dofinal(src); } catch (java.security.nosuchalgorithmexception e1) // todo: handle exception e1.printstacktrace(); }catch(javax.crypto.nosuchpaddingexception e2) e2.printstacktrace(); }catch(java.lang.exception e3) e3.printstacktrace(); } return null; } //转换成十六进制字符串 public static string byte2hex(byte[] b) string hs=""; string stmp=""; for(int n=0; nstmp = (java.lang.integer.tohexstring(b[n]& 0xff)); if(stmp.length()==1){ hs = hs "0" stmp; }else{ hs = hs stmp; } if(n } return hs.touppercase(); } public static void main(string[] args) { // todo auto-generated method stub //添加新安全算法,如果用jce就要把它添加进去 security.addprovider(new com.sun.crypto.provider.sunjce()); final byte[] keybytes = {0x11, 0x22, 0x4f, 0x58, (byte)0x88, 0x10, 0x40, 0x38, 0x28, 0x25, 0x79, 0x51, (byte)0xcb, (byte)0xdd, 0x55, 0x66, 0x77, 0x29, 0x74, (byte)0x98, 0x30, 0x40, 0x36, (byte)0xe2 }; //24字节的密钥 string szsrc = "this is a 3des test. 测试"; system.out.println("加密前的字符串:" szsrc); byte[] encoded = encryptmode(keybytes,szsrc.getbytes()); system.out.println("加密后的字符串:" new string(encoded)); byte[] srcbytes = decryptmode(keybytes,encoded); system.out.println("解密后的字符串:" (new string(srcbytes))); } }
public static string encryptkey(string mainkey,string plainkey){ string encryptkey = ""; try{ security.addprovider(new org.bouncycastle.jce.provider.bouncycastleprovider()); string algorithm = "desede/ecb/nopadding"; byte[] hb = hex2byte(mainkey.getbytes()); byte[] k = new byte[24]; system.arraycopy(hb,0,k,0,16); system.arraycopy(hb,0,k,16,8); secretkey deskey = new secretkeyspec(k, algorithm); cipher c1 = cipher.getinstance(algorithm); c1.init(cipher.encrypt_mode, deskey); encryptkey = byte2hex(c1.dofinal(hex2byte(plainkey.getbytes()))); }catch(exception e){ e.printstacktrace(); } return encryptkey; }public static string byte2hex(byte[] b) { string hs = ""; string stmp = ""; for (int n = 0; n < b.length; n ) { stmp = integer.tohexstring(b[n] & 0xff); if (stmp.length() == 1) hs = ("0" stmp); else hs = stmp; } return hs.touppercase(); } 3des的加密密钥长度要求是24个字节,本例中因为给定的密钥只有16个字节,所以需要填补至24个字节。
文章tag:

最近更新

  • 电容充电,电容是怎样进行充电的电容充电,电容是怎样进行充电的

    电容是怎样进行充电的2,关于复杂电路电容充电3,大电容是怎样充电的4,电容器的充放电的过程怎样的5,问一个关于电容充电原理的问题6,请微观解释电容器充电过程1,电容是怎样进行充电的电容的两.....

    经验 日期:2023-08-15

  • 蜂窝数据apn在哪蜂窝数据apn在哪

    ...apnin蜂窝数据如何设置用户名和密码?在哪里注册?普网蜂窝-2/网内第一个apn进入cmnet,退出。如何在iphone上设置apn?蜂窝数据apn是什么?蜂窝手机数据apn是:cmnet1,首先用户要进入设置选项,.....

    经验 日期:2023-08-15

  • 行业分析 大数据行业,目前外贸行业的行业分析行业分析 大数据行业,目前外贸行业的行业分析

    大数据分析行业前景如何?有哪些半导体行业数据分析?2.-1分析division-1分析division是数据division的一种,指不同的行业,专攻行业。大数据行业发展如何?big数据行业就业三大方向及十大职业.....

    经验 日期:2023-08-15

  • 魅族5s数据连接不上去魅族5s数据连接不上去

    连接否?为什么魅族针对手机数据line连接电脑、魅族仅手机显示-3连接怎么回事?魅族否连接移动网络,魅蓝5s如何连接电脑连接电脑连接如何做网络1。魅族手机上网怎么用电脑网络都可以,设置方.....

    经验 日期:2023-08-15

  • 备备手机数据备份器,小米手机数据备份到电脑备备手机数据备份器,小米手机数据备份到电脑

    如何制作手机全部内容备份如果使用vivo手机,可以使用云服务备份。具体方法如下:1,进入“云服务”app设备云备份数据选型需求备份-3/立即返回上一页/,打开“自动云备份”每7天备份-3/当设.....

    经验 日期:2023-08-15

  • 芒果tv自动关机芒果tv自动关机

    6.找到芒果tv的右下角并勾选,然后点击“一键停止”关闭芒果tvstart自动start。芒果tv如何定期关闭?芒果tvboot自动如何关闭开机芒果如何取消电视的开机自动运行应用:thinkpade480windows.....

    经验 日期:2023-08-15

  • 金立数据报告,金立手机怎么清除数据金立数据报告,金立手机怎么清除数据

    金立手机m6splus显示联系人停止运行时发生了什么。可以点击“发送错误报告”,或者点击“发送错误报告”,然后备份手机联系人,打开设置→高级设置→全部→通讯录→清除,你点击发送错误报告.....

    经验 日期:2023-08-15

  • gita 机器人 结构gita 机器人 结构

    业机器人按机械结构可分为串联机器人和并联机器人。机器人联驱结构什么事?1)自重小:提高机器人运行的动态性能;行业构成机器人结构?美国atlas机器人美国atlas机器人atlas机器人(atlasrobo.....

    经验 日期:2023-08-15

网站地图