鱼C论坛

 找回密码
 立即注册
查看: 3895|回复: 24

程序员女妹子求助!!!

[复制链接]
发表于 2014-5-27 20:14:58 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
求大神编写DES RSA
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-5-27 22:36:09 | 显示全部楼层
求我啊~~{:7_178:}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-5-27 22:53:01 | 显示全部楼层
搜索一下很多这种算法的实现。。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-5-27 23:39:34 From FishC Mobile | 显示全部楼层
路过帮顶!!!!!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-5-28 00:28:08 | 显示全部楼层
把女妹子都抬出来了  要验身
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-5-28 08:40:26 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-5-28 08:41:10 | 显示全部楼层
lzw596288381 发表于 2014-5-28 00:28
把女妹子都抬出来了  要验身

验身就算了,爱信不信
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-5-28 09:03:39 | 显示全部楼层
using System;
using System.IO;
using System.Data;
using System.Configuration;
using System.Web;
using System.Security.Cryptography;
using System.Text;

namespace Common
{
    /// <summary>
    /// DES 的摘要说明
    /// </summary>
    public class DES
    {
        DESCryptoServiceProvider des;
        static string desDefaultKey, desDefaultIV;

        #region 构造方法。初始化 DES 新实例
        /// <summary>
        /// 初始化 DES 新实例
        /// </summary>
        public DES()
        {
            this.des = new DESCryptoServiceProvider();
        }

        /// <summary>
        /// 初始化 DES 新实例
        /// </summary>
        /// <param name="key">密钥</param>
        /// <param name="iv">向量</param>
        public DES(string key, string iv)
            : this()
        {
            this.Key = key;
            this.IV = iv;
        }
        #endregion

        #region Key、IV 属性。获取或设置数据加密的 Key 和 IV
        /// <summary>
        ///  获取或设置数据加密标准 (System.Security.Cryptography.DES) 算法的机密密钥
        /// </summary>
        public string Key
        {
            get { return System.Text.Encoding.Default.GetString(this.des.Key); }
            set
            {
                if (value == null)
                    value = "";

                byte[] buffer = System.Text.Encoding.Default.GetBytes(value);

                byte[] keybuffer = new byte[8];
                Array.Copy(buffer, keybuffer, buffer.Length > 8 ? 8 : buffer.Length);
                this.des.Key = keybuffer;
            }
        }

        /// <summary>
        ///  获取或设置对称算法的初始化向量 (System.Security.Cryptography.SymmetricAlgorithm.IV)
        /// </summary>
        public string IV
        {
            get { return System.Text.Encoding.Default.GetString(this.des.IV); }
            set
            {
                if (value == null)
                    value = "";

                byte[] buffer = System.Text.Encoding.Default.GetBytes(value);

                byte[] ivBuffer = new byte[8];
                Array.Copy(buffer, ivBuffer, buffer.Length > 8 ? 8 : buffer.Length);
                this.des.IV = ivBuffer;
            }
        }
        #endregion

        #region Encrypt、Decrypt 方法。加解密字符串
        /// <summary>
        /// 加密字符串
        /// </summary>
        /// <param name="input">待加密的源字符串</param>
        /// <returns>加密后的结果字符串</returns>
        public string Encrypt(string input)
        {
            MemoryStream ms = new MemoryStream();
            ICryptoTransform transform = this.des.CreateEncryptor();
            CryptoStream cs = new CryptoStream(ms, transform, CryptoStreamMode.Write);

            byte[] buffer = System.Text.Encoding.Default.GetBytes(input);
            cs.Write(buffer, 0, buffer.Length);
            cs.FlushFinalBlock();

            byte[] result = ms.ToArray();
            return Convert.ToBase64String(result);
        }

        /// <summary>
        /// 解密字符串
        /// </summary>
        /// <param name="input">待解密字符串</param>
        /// <returns>解密后的源字符串</returns>
        public string Decrypt(string input)
        {
            MemoryStream ms = new MemoryStream();
            ICryptoTransform transform = this.des.CreateDecryptor();
            try
            {

                byte[] buffer = Convert.FromBase64String(input);
                CryptoStream cs = new CryptoStream(ms, transform, CryptoStreamMode.Write);
                cs.Write(buffer, 0, buffer.Length);
                cs.FlushFinalBlock();
            }
            catch (Exception ex)
            {
                Log.LogHelper.Error("DES", "Descrypt", ex.Message);
                return string.Empty;
            }

            byte[] result = ms.ToArray();
            return System.Text.Encoding.Default.GetString(result);
        }
        #endregion


        public static string DesDefaultKey
        {
            get
            {
                if (DES.desDefaultKey == null)
                    DES.desDefaultKey = "tf2014.04.14pwd";

                return DES.desDefaultKey;
            }
        }

        public static string DesDefaultIV
        {
            get
            {
                if (DES.desDefaultIV == null)
                    DES.desDefaultIV = "tf2014.04.14exp";

                return DES.desDefaultIV;
            }
        }

        public static string DesEncrypt(string input)
        {
            DES des = new DES(DES.DesDefaultKey, DES.DesDefaultIV);
            return des.Encrypt(input);
        }

        public static string DesDecrypt(string input)
        {
            DES des = new DES(DES.DesDefaultKey, DES.DesDefaultIV);
            return des.Decrypt(input);
        }
    }

    public class RSA
    {
        /// <summary>
        /// RSA加密
        /// </summary>
        /// <param name="publickey"></param>
        /// <param name="content"></param>
        /// <returns></returns>
        public static string RSAEncrypt(string publickey, string content)
        {
            publickey = @"<RSAKeyValue><Modulus>5m9m14XH3oqLJ8bNGw9e4rGpXpcktv9MSkHSVFVMjHbfv+SJ5v0ubqQxa5YjLN4vc49z7SVju8s0X4gZ6AzZTn06jzWOgyPRV54Q4I0DCYadWW4Ze3e+BOtwgVU1Og3qHKn8vygoj40J6U85Z/PTJu3hN1m75Zr195ju7g9v4Hk=</Modulus><Exponent>AQAB</Exponent></RSAKeyValue>";
            RSACryptoServiceProvider rsa = new RSACryptoServiceProvider();
            byte[] cipherbytes;
            rsa.FromXmlString(publickey);
            cipherbytes = rsa.Encrypt(Encoding.UTF8.GetBytes(content), false);

            return Convert.ToBase64String(cipherbytes);
        }

        /// <summary>
        /// RSA解密
        /// </summary>
        /// <param name="privatekey"></param>
        /// <param name="content"></param>
        /// <returns></returns>
        public static string RSADecrypt(string privatekey, string content)
        {
            privatekey = @"<RSAKeyValue><Modulus>5m9m14XH3oqLJ8bNGw9e4rGpXpcktv9MSkHSVFVMjHbfv+SJ5v0ubqQxa5YjLN4vc49z7SVju8s0X4gZ6AzZTn06jzWOgyPRV54Q4I0DCYadWW4Ze3e+BOtwgVU1Og3qHKn8vygoj40J6U85Z/PTJu3hN1m75Zr195ju7g9v4Hk=</Modulus><Exponent>AQAB</Exponent><P>/hf2dnK7rNfl3lbqghWcpFdu778hUpIEBixCDL5WiBtpkZdpSw90aERmHJYaW2RGvGRi6zSftLh00KHsPcNUMw==</P><Q>6Cn/jOLrPapDTEp1Fkq+uz++1Do0eeX7HYqi9rY29CqShzCeI7LEYOoSwYuAJ3xA/DuCdQENPSoJ9KFbO4Wsow==</Q><DP>ga1rHIJro8e/yhxjrKYo/nqc5ICQGhrpMNlPkD9n3CjZVPOISkWF7FzUHEzDANeJfkZhcZa21z24aG3rKo5Qnw==</DP><DQ>MNGsCB8rYlMsRZ2ek2pyQwO7h/sZT8y5ilO9wu08Dwnot/7UMiOEQfDWstY3w5XQQHnvC9WFyCfP4h4QBissyw==</DQ><InverseQ>EG02S7SADhH1EVT9DD0Z62Y0uY7gIYvxX/uq+IzKSCwB8M2G7Qv9xgZQaQlLpCaeKbux3Y59hHM+KpamGL19Kg==</InverseQ><D>vmaYHEbPAgOJvaEXQl+t8DQKFT1fudEysTy31LTyXjGu6XiltXXHUuZaa2IPyHgBz0Nd7znwsW/S44iql0Fen1kzKioEL3svANui63O3o5xdDeExVM6zOf1wUUh/oldovPweChyoAdMtUzgvCbJk1sYDJf++Nr0FeNW1RB1XG30=</D></RSAKeyValue>";
            RSACryptoServiceProvider rsa = new RSACryptoServiceProvider();
            byte[] cipherbytes;
            rsa.FromXmlString(privatekey);
            cipherbytes = rsa.Decrypt(Convert.FromBase64String(content), false);

            return Encoding.UTF8.GetString(cipherbytes);
        }
    }

    /// <summary>
    /// MD5 的摘要说明
    /// </summary>
    public class MD5
    {
        public static string Compute(string value)
        {
            // 创建 MD5 加密提供程序实例
            MD5CryptoServiceProvider md5 = (MD5CryptoServiceProvider)MD5CryptoServiceProvider.Create();

            byte[] buffer = Encoding.Default.GetBytes(value);        // 将字符串转换成二进制数组(byte 数组,通常称作为二进制数组)
            byte[] result = md5.ComputeHash(buffer);                        // 生成 MD5 哈希代码(也是二进制数组)。

            // 将生成的 MD5 哈希代码,转换为字符串显示
            string hash = BitConverter.ToString(result).Replace("-", string.Empty);
            return hash;
        }


        public static string Compute(string value, MD5Type md5Typ)
        {
            System.Security.Cryptography.MD5CryptoServiceProvider MD5 = new System.Security.Cryptography.MD5CryptoServiceProvider();
            byte[] b = MD5.ComputeHash(System.Text.Encoding.UTF8.GetBytes(value));
            System.Text.StringBuilder StrB = new System.Text.StringBuilder();
            for (int i = 0; i < b.Length; i++)
                StrB.Append(b[i].ToString("x").PadLeft(2, '0'));
            if (md5Typ == MD5Type.MD5_16)
                return StrB.ToString(8, 16);
            else
                return StrB.ToString();
        }
    }

    public enum MD5Type
    {
        //16位MD5码
        MD5_16 = 16,
        //32位MD5码
        MD5_32 = 32
    }

}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-5-28 10:34:09 | 显示全部楼层
求   真    相
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-5-28 11:15:36 | 显示全部楼层
= =   网络上面有很多算法的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-5-28 11:30:16 | 显示全部楼层
8楼真积极,这么快就写好了。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-5-28 12:37:42 | 显示全部楼层
真有大神!!!!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-5-28 21:49:37 | 显示全部楼层
我只是想问问而已 没有冒犯的意思  现在鱼C很少MM 会不会有人故意装MM来问问题实现自己想要的结果?{:1_1:}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-5-28 22:40:42 | 显示全部楼层
Winer 发表于 2014-5-28 21:49
我只是想问问而已 没有冒犯的意思  现在鱼C很少MM 会不会有人故意装MM来问问题实现自己想要的结果?

为什么鱼C很少MM?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-5-28 22:41:13 | 显示全部楼层
qq小小七 发表于 2014-5-28 22:40
为什么鱼C很少MM?

不过我真的是妹子。。。。。学网络工程的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-5-28 22:41:59 | 显示全部楼层
ぜBaby_小小 发表于 2014-5-28 11:15
= =   网络上面有很多算法的

要自己写的,最近作业实验太多还要考试才求帮忙的,,,,网上的版本要的人太多了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-5-28 22:42:33 | 显示全部楼层
yueyiyunfeng 发表于 2014-5-28 09:42
支持楼主,顶一下

Thankyou。。。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-5-28 22:43:08 | 显示全部楼层
夺命弑神 发表于 2014-5-28 09:11
女汉纸的标准!!!!

是滴 ,学这个的必须汉子
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-5-28 22:43:55 | 显示全部楼层
u654f 发表于 2014-5-28 09:03
using System;
using System.IO;
using System.Data;

亲,你这是哪门语言。。。像c++又不像的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-5-28 23:22:11 | 显示全部楼层
qq小小七 发表于 2014-5-28 22:40
为什么鱼C很少MM?

不单单是鱼C 全国都是 学计算机的MM少的可怜  
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-24 09:25

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表