• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            隨筆 - 224  文章 - 41  trackbacks - 0
            <2012年12月>
            2526272829301
            2345678
            9101112131415
            16171819202122
            23242526272829
            303112345

            享受編程

            常用鏈接

            留言簿(11)

            隨筆分類(159)

            隨筆檔案(224)

            文章分類(2)

            文章檔案(4)

            經(jīng)典c++博客

            搜索

            •  

            最新評(píng)論

            閱讀排行榜

            評(píng)論排行榜

            在python下可以下載pydes 下載地址為 http://pydes.sourceforge.net/

            在c#下實(shí)現(xiàn)des加密較為簡(jiǎn)單,如下:
            using System;
            using System.Collections.Generic;
            using System.Linq;
            using System.Text;
            using System.Security.Cryptography;
            using System.IO;

            namespace des
            {
                
            class Program
                {
                    
            static void Main(string[] args)
                    {
                        
            string ss = EncryptDES("1123""12345678");

                        
            string aa = DecryptDES(ss, "12345678");
                    }

                    
            //默認(rèn)密鑰向量
                    private static string iv = "1234567812345678";
                    
            /// <summary>
                    
            /// DES加密字符串
                    
            /// </summary>
                    
            /// <param name="encryptString">待加密的字符串</param>
                    
            /// <param name="encryptKey">加密密鑰,要求為8位</param>
                    
            /// <returns>加密成功返回加密后的字符串,失敗返回源串</returns>
                    public static string EncryptDES(string encryptString, string encryptKey)
                    {
                        
            try
                        {
                            
            byte[] rgbKey = Encoding.UTF8.GetBytes(encryptKey.Substring(08));
                            
            byte[] rgbIV = Encoding.UTF8.GetBytes(iv);
                            
            byte[] inputByteArray = Encoding.UTF8.GetBytes(encryptString);
                            DESCryptoServiceProvider dCSP 
            = new DESCryptoServiceProvider();
                            dCSP.Mode 
            = CipherMode.CBC;
                            dCSP.Padding 
            = PaddingMode.PKCS7;
                            MemoryStream mStream 
            = new MemoryStream();
                            CryptoStream cStream 
            = new CryptoStream(mStream, dCSP.CreateEncryptor(rgbKey, rgbIV), CryptoStreamMode.Write);
                            cStream.Write(inputByteArray, 
            0, inputByteArray.Length);
                            cStream.FlushFinalBlock();

                            
            return Convert.ToBase64String(mStream.ToArray());
                        }
                        
            catch
                        {
                            
            return encryptString;
                        }
                    }

                    
            /// <summary>
                    
            /// DES解密字符串
                    
            /// </summary>
                    
            /// <param name="decryptString">待解密的字符串</param>
                    
            /// <param name="decryptKey">解密密鑰,要求為8位,和加密密鑰相同</param>
                    
            /// <returns>解密成功返回解密后的字符串,失敗返源串</returns>
                    public static string DecryptDES(string decryptString, string decryptKey)
                    {
                        
            try
                        {
                            
            byte[] rgbKey = Encoding.UTF8.GetBytes(decryptKey.Substring(08));
                            
            byte[] rgbIV = Encoding.UTF8.GetBytes(iv);
                            
            byte[] inputByteArray = Convert.FromBase64String(decryptString);
                            DESCryptoServiceProvider dCSP 
            = new DESCryptoServiceProvider();
                            dCSP.Mode 
            = CipherMode.CBC;
                            dCSP.Padding 
            = PaddingMode.PKCS7;
                            MemoryStream mStream 
            = new MemoryStream();
                            CryptoStream cStream 
            = new CryptoStream(mStream, dCSP.CreateDecryptor(rgbKey, rgbIV), CryptoStreamMode.Write);
                            cStream.Write(inputByteArray, 
            0, inputByteArray.Length);
                            cStream.FlushFinalBlock();
                            
            return Encoding.UTF8.GetString(mStream.ToArray());
                        }
                        
            catch
                        {
                            
            return decryptString;
                        }
                    }
                }
            }

            python的實(shí)現(xiàn)如下:
            #coding:utf-8
            import binascii
            import base64
            import pyDes

            class DES:
                
            #IV必須是 8 字節(jié)長(zhǎng)度的十六進(jìn)制數(shù)
                iv = '1234567812345678'
                
            #key加密密鑰長(zhǎng)度,24字節(jié)
                key = '12345678'
                
            def __init__(self, iv, key):
                    self.iv 
            = iv
                    self.key 
            = key
                
            def encrypt(self, data):
                    k 
            = pyDes.triple_des(self.key, pyDes.CBC, self.iv, pad=None, padmode=pyDes.PAD_PKCS5)
                    d 
            = k.encrypt(data)
                    d 
            = base64.encodestring(d)
                    
            return d
                
            def decrypt(self, data):
                    k 
            = pyDes.triple_des(self.key, pyDes.CBC, self.iv, pad=None, padmode=pyDes.PAD_PKCS5)
                    data 
            = base64.decodestring(data)
                    d 
            = k.decrypt(data)
                    
            return d
            if __name__ == '__main__':
                data 
            = "1123"
                des 
            = DES('12345678','1234567812345678')
                encryptdata 
            = des.encrypt(data.encode('utf-8'))
                
            print  encryptdata
                decryptdata 
            = des.decrypt(encryptdata)
                
            print decryptdata


            posted on 2013-01-06 14:28 漂漂 閱讀(5348) 評(píng)論(0)  編輯 收藏 引用

            只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。
            網(wǎng)站導(dǎo)航: 博客園   IT新聞   BlogJava   博問   Chat2DB   管理


            国产午夜精品久久久久九九| 久久精品九九亚洲精品| 久久精品国产亚洲7777| 亚洲国产精品综合久久一线 | 99久久免费国产精品热| 久久香蕉国产线看观看99| 国产精久久一区二区三区| 久久国产AVJUST麻豆| 午夜人妻久久久久久久久| 狠狠色伊人久久精品综合网| 久久久这里有精品| 99久久精品免费看国产一区二区三区| 久久影视综合亚洲| 久久香蕉综合色一综合色88| 久久婷婷国产剧情内射白浆 | 亚洲国产香蕉人人爽成AV片久久| 色妞色综合久久夜夜| 久久久中文字幕| 亚洲国产另类久久久精品小说 | 亚洲欧洲精品成人久久曰影片| 久久久久亚洲AV片无码下载蜜桃| 久久青青草原亚洲av无码| 久久99精品久久只有精品| 久久精品无码一区二区三区日韩| 韩国免费A级毛片久久| 天天影视色香欲综合久久| 久久亚洲精品中文字幕三区| 国产精品乱码久久久久久软件| 99热成人精品免费久久| 99久久免费国产精精品| 久久精品国产亚洲AV无码麻豆| 区久久AAA片69亚洲| 99精品国产免费久久久久久下载| 国产农村妇女毛片精品久久| 久久精品国产亚洲欧美| 国产精品久久久久久一区二区三区| 婷婷久久香蕉五月综合加勒比| 中文字幕乱码人妻无码久久| 无码久久精品国产亚洲Av影片 | 亚洲国产精品久久| 国产91久久综合|