强奸久久久久久久|草草浮力在线影院|手机成人无码av|亚洲精品狼友视频|国产国模精品一区|久久成人中文字幕|超碰在线视屏免费|玖玖欧洲一区二区|欧美精品无码一区|日韩无遮一区二区

首頁 > 資訊 > 經(jīng)驗(yàn) > 3des加密,為什么3DES的中間部分是解密而不是加密

3des加密,為什么3DES的中間部分是解密而不是加密

來源:整理 時(shí)間:2023-08-24 00:47:32 編輯:智能門戶 手機(jī)版

本文目錄一覽

1,為什么3DES的中間部分是解密而不是加密

3DES加密過程中的第二步使用的解密沒有密碼方面的意義。它的唯一好處是讓3DES的使用者能夠解密原來單重DES使用者加密的數(shù)據(jù)
這樣做的好處是當(dāng)你用同樣的key(即k1=k2=k3=k)帶入e(k3,d(k2,e(k1,m)))時(shí),里面兩層的d和e消去,3des就會退化為一個普通的des。

為什么3DES的中間部分是解密而不是加密

2,思科K9 3DES加密算法

密碼學(xué)中,3DES(或稱為Triple DES)是三重?cái)?shù)據(jù)加密算法(TDEA,Triple Data Encryption Algorithm)塊密碼的通稱。它相當(dāng)于是對每個數(shù)據(jù)塊應(yīng)用三次DES加密算法。由于計(jì)算機(jī)運(yùn)算能力的增強(qiáng),原版DES密碼的密鑰長度變得容易被暴力破解;3DES即是設(shè)計(jì)用來提供一種相對簡單的方法,即通過增加DES的密鑰長度來避免類似的攻擊,而不是設(shè)計(jì)一種全新的塊密碼算法。

思科K9 3DES加密算法

3,3DES 加密解密

這個我不清楚。給電腦上的文件加密或者文件夾加密,你可以使用超級加密3000。超級加密3000采用國際上成熟的加密算法和安全快速的加密方法,可以有效保障數(shù)據(jù)安全!具體操作方法:1下載安裝超級加密3000。2 然后在需要加密的文件上單擊鼠標(biāo)右鍵選擇加密。3 在彈出的文件加密窗口中設(shè)置文件加密密碼就OK了。超級加密3000的下載地址你可以在百度上搜索超級加密3000,第一個就是。
des的密鑰是8個字節(jié),但實(shí)際上只有7個用上,也就是56位。3des是用3個或2個des密鑰加密一串明文,最少112位最多168位。也就是14~21個字母或數(shù)字符號。從安全性上來說密鑰位數(shù)不足是不能加密的,但有些軟件為了保證用戶可用,會自動使用某種策略自動填充滿,一般是重復(fù)填充或采用特定字符,如果你只填了1234作為密鑰,有可能真正用于加密的密鑰是123412341234123412341或者123400000000000000000類似的。另外請注意,最好去做3des的密鑰位數(shù)不是7或8,因?yàn)閐es的加密解密是同一個過程,這樣搞在填充后實(shí)際上是只使用了一次des加密??????還不如5位6位好??????如果是你編程時(shí)碰到的問題,把你的源碼發(fā)來看看再說。

3DES 加密解密

4,如何用Java進(jìn)行3DES加密解

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個字節(jié),本例中因?yàn)榻o定的密鑰只有16個字節(jié),所以需要填補(bǔ)至24個字節(jié)。

5,求c 具體的 3des雙倍加密算法 跪求

using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.IO; using System.Security.Cryptography; namespace Rare.Card.Libary.Security { /// <summary> /// 構(gòu)造一個對稱算法,使用3Des加密 ///如果當(dāng)前的 Key 屬性為 NULL,可調(diào)用 GenerateKey 方法以創(chuàng)建新的隨機(jī) Key。 ///如果當(dāng)前的 IV 屬性為 NULL,可調(diào)用 GenerateIV 方法以創(chuàng)建新的隨機(jī) IV /// </summary> public class CryptoTripleDes { //加密矢量 private static byte[] IV = { 0xB0, 0xA2, 0xB8, 0xA3, 0xDA, 0xCC, 0xDA, 0xCC }; /// <summary> /// 使用指定的128字節(jié)的密鑰對8字節(jié)數(shù)組進(jìn)行3Des加密 /// </summary> /// <param name="keys">密鑰,16字節(jié),128位</param> /// <param name="values">要加密的數(shù)組</param> /// <returns>已加密的數(shù)組</returns> public static byte[] CreateEncryptByte(byte[] keys, byte[] values) { TripleDESCryptoServiceProvider tdsc = new TripleDESCryptoServiceProvider(); //指定密匙長度,默認(rèn)為192位 tdsc.KeySize = 128; //使用指定的key和IV(加密向量) tdsc.Key = keys; tdsc.IV = IV; //加密模式,偏移 tdsc.Mode = CipherMode.ECB; tdsc.Padding = PaddingMode.None; //進(jìn)行加密轉(zhuǎn)換運(yùn)算 ICryptoTransform ct = tdsc.CreateEncryptor(); //8很關(guān)鍵,加密結(jié)果是8字節(jié)數(shù)組 byte[] results = ct.TransformFinalBlock(values, 0, 8); return results; } /// <summary> /// 使用指定的128字節(jié)的密鑰對字符串(8位)進(jìn)行3Des加密 /// </summary> /// <param name="strKey"></param> /// <param name="strValue"></param> /// <returns></returns> public static byte[] CreateEncryptString(string strKey, string strValue) { TripleDESCryptoServiceProvider tdsc = new TripleDESCryptoServiceProvider(); byte[] results = new byte[strValue.Length]; tdsc.KeySize = 128; if (!string.IsNullOrEmpty(strKey)) { tdsc.Key = Encoding.UTF8.GetBytes(strKey); } tdsc.IV = IV; using (ICryptoTransform ct = tdsc.CreateDecryptor()) { byte[] byt = Encoding.UTF8.GetBytes(strValue); results = ct.TransformFinalBlock(byt, 0, 8); } return results; } /// <summary> /// 對加密字符串進(jìn)行解密 /// </summary> /// <param name="keys">密匙</param> /// <param name="values">已加密字符串</param> /// <returns>解密結(jié)果</returns> public static byte[] CreateDescryptByte(byte[] keys, byte[] values) { TripleDESCryptoServiceProvider tdsc = new TripleDESCryptoServiceProvider(); //指定密匙長度,默認(rèn)為192位 tdsc.KeySize = 128; //使用指定的key和IV(加密向量) tdsc.Key = keys; tdsc.IV = IV; //加密模式,偏移 tdsc.Mode = CipherMode.ECB; tdsc.Padding = PaddingMode.None; //進(jìn)行加密轉(zhuǎn)換運(yùn)算 ICryptoTransform ct = tdsc.CreateDecryptor(); //8很關(guān)鍵,加密結(jié)果是8字節(jié)數(shù)組 byte[] results = ct.TransformFinalBlock(values, 0, 8); return results; } } }

6,如何用Java進(jìn)行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指定為過渡的 * 加密標(biāo)準(zhǔn)),是DES的一個更安全的變形。它以DES為基本模塊,通過組合分組方法設(shè)計(jì)出分組加 * 密算法,其具體實(shí)現(xiàn)如下:設(shè)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中調(diào)用sun公司提供的3DES加密解密算法時(shí),需要使 * 用到$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字節(jié) //src為被加密的數(shù)據(jù)緩沖區(qū)(源) 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字節(jié) //src為加密后的緩沖區(qū) 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; } //轉(zhuǎn)換成十六進(jìn)制字符串 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就要把它添加進(jìn)去 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字節(jié)的密鑰 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個字節(jié),本例中因?yàn)榻o定的密鑰只有16個字節(jié),所以需要填補(bǔ)至24個字節(jié)。
文章TAG:3des加密為什么什么3des加密

最近更新

  • 222666,佳能數(shù)碼相機(jī)廠部電話222666,佳能數(shù)碼相機(jī)廠部電話

    佳能數(shù)碼相機(jī)廠部電話2,佳能單反相機(jī)如何進(jìn)行防偽查詢3,用手機(jī)撥打4006222666是全免費(fèi)的嗎4,為什么我打佳能熱線中心電話95177178就沒有通過5,成都佳能快修的電話號碼是多少我知地址是四川.....

    經(jīng)驗(yàn) 日期:2023-08-24

  • 交換機(jī)和路由器,路由器和交換機(jī)有什么區(qū)別交換機(jī)和路由器,路由器和交換機(jī)有什么區(qū)別

    路由器和交換機(jī)有什么區(qū)別2,路由器和交換機(jī)什么區(qū)別3,交換機(jī)和路由器的區(qū)別4,路由器和交換機(jī)的區(qū)別5,交換機(jī)和路由器區(qū)別是什么6,路由器與交換機(jī)的區(qū)別1,路由器和交換機(jī)有什么區(qū)別交換機(jī)和路.....

    經(jīng)驗(yàn) 日期:2023-08-23

  • cpu核顯,筆記本電腦的 核顯 是什么意思cpu核顯,筆記本電腦的 核顯 是什么意思

    筆記本電腦的核顯是什么意思2,電腦的主頻和核顯是什么意思請教3,核顯和獨(dú)顯哪個好4,買電腦cpu帶核心顯卡好還是不帶的好1,筆記本電腦的核顯是什么意思你好!所謂的核顯就是指核心顯卡,是CPU集.....

    經(jīng)驗(yàn) 日期:2023-08-23

  • fnb,lol fnb是誰fnb,lol fnb是誰

    lolfnb是誰2,請問南非FNB銀行國內(nèi)有營業(yè)點(diǎn)嗎3,南非fnb銀行卡要不要開通才能拿回國內(nèi)取4,F(xiàn)NB銀行卡在建設(shè)銀行不能取錢了嗎5,電磁感應(yīng)定律fnb是什么意思6,卵磷脂是什么東西有什么作用1,lolfnb.....

    經(jīng)驗(yàn) 日期:2023-08-23

  • 710顯卡,nvidia geforce 710m是什么顯卡710顯卡,nvidia geforce 710m是什么顯卡

    nvidiageforce710m是什么顯卡2,gt710顯卡性能怎么樣gt710顯卡性能測試3,影馳GT710冰鱗1G顯卡怎么樣4,顯卡nvidiageforce710m怎么樣5,英偉達(dá)gt710怎么樣能玩英雄聯(lián)盟嗎有620得好嗎6,NVIDIAGe.....

    經(jīng)驗(yàn) 日期:2023-08-23

  • 觸摸屏原理,觸摸屏的電子原理觸摸屏原理,觸摸屏的電子原理

    觸摸屏的電子原理2,手機(jī)或電腦觸摸屏的原理3,觸屏機(jī)的原理是什么4,觸摸屏的原理是靠手的溫度5,求詳解觸摸屏原理6,觸屏的原理是什么1,觸摸屏的電子原理觸摸屏由觸摸檢測部件和觸摸屏控制器組.....

    經(jīng)驗(yàn) 日期:2023-08-23

  • 數(shù)據(jù)選擇器,數(shù)據(jù)分配器和數(shù)據(jù)選擇器在電路中起什么作用數(shù)據(jù)選擇器,數(shù)據(jù)分配器和數(shù)據(jù)選擇器在電路中起什么作用

    數(shù)據(jù)分配器和數(shù)據(jù)選擇器在電路中起什么作用2,什么時(shí)候用CMOS數(shù)據(jù)選擇器什么時(shí)候選用TTL數(shù)據(jù)選擇器3,用8選1數(shù)據(jù)選擇器74LS151設(shè)計(jì)三輸入多數(shù)表決電路4,關(guān)于數(shù)據(jù)選擇器5,excel怎么實(shí)現(xiàn)數(shù)據(jù).....

    經(jīng)驗(yàn) 日期:2023-08-23

  • 接地樁,如何接地怎么打接地樁接地樁,如何接地怎么打接地樁

    如何接地怎么打接地樁2,怎樣打接地樁3,接地樁打地下多深樁距離多遠(yuǎn)一個4,郭老師你好想向你請教高壓柜的接地樁和變壓器的接地樁打法5,防雷裝置的接地裝置若沒有接地樁人工自然接地裝置都包.....

    經(jīng)驗(yàn) 日期:2023-08-23