我是想把密码加密啦,所以用异或。
但是不知道怎样用C#写,能详细点吗?谢谢啦!
还有就是异或适用于字母吗?谢谢啦!

解决方案 »

  1.   

    1                    int d=6^3; 
                            Console.WriteLine("d={0}",d); 
                            //6的二进制是00000110,3的二进制是00000011,按位异或后等于00000101,即5  
    2  只能数字
      

  2.   

    密码加密可以直接采用md5或者sha512的方法,using System.Security;
    using System.Security.Cryptography;其中就有SHA512,MD5等类,可以直接使用
    如果是文本加密,光是异或可能不够安全,建议在异或之前再做一些处理。
      

  3.   

    /// <summary>
    /// 加密算法
    /// </summary>
    /// <param name="pwdEncrypt">要加密的字符串</param>
    /// <param name="key">密钥</param>
    /// <returns></returns>
    public string Encrypt(string pwdEncrypt,string key)  
    {  
    DESCryptoServiceProvider des = new DESCryptoServiceProvider();  
    byte[] inputByteArray = Encoding.Default.GetBytes(pwdEncrypt);  
    des.Key = ASCIIEncoding.ASCII.GetBytes(key);  
    des.IV  = ASCIIEncoding.ASCII.GetBytes(key);  
    MemoryStream ms = new MemoryStream();  
    CryptoStream cs = new CryptoStream(ms,des.CreateEncryptor(),CryptoStreamMode.Write);  
    cs.Write(inputByteArray,0,inputByteArray.Length);  
    cs.FlushFinalBlock();  
    StringBuilder  encryptPwd  = new StringBuilder();  
    foreach(byte b in ms.ToArray())  
    {  
    encryptPwd.AppendFormat("{0:X2}",b);  
    }  
    encryptPwd.ToString();  
    return  encryptPwd.ToString();  
    }  /// <summary>
    /// 解密算法
    /// </summary>
    /// <param name="pwdDecrypt">要解密的字符串</param>
    /// <param name="key">密钥</param>
    /// <returns></returns>
    public string Decrypt(string pwdDecrypt,string key)  
    {  
    DESCryptoServiceProvider des = new DESCryptoServiceProvider();  
    byte[] inputByteArray = new byte[pwdDecrypt.Length  /  2];  
    for(int x = 0;x < pwdDecrypt.Length/2;x++)  
    {  
    int i = (Convert.ToInt32(pwdDecrypt.Substring(x * 2,2),16));  
    inputByteArray[x] = (byte)i;  
    }  
    des.Key = ASCIIEncoding.ASCII.GetBytes(key);  
    des.IV = ASCIIEncoding.ASCII.GetBytes(key);  
    MemoryStream ms = new MemoryStream();  
    CryptoStream cs = new CryptoStream(ms,des.CreateDecryptor(),CryptoStreamMode.Write);  
    cs.Write(inputByteArray,0,inputByteArray.Length);  
    cs.FlushFinalBlock();  
    return  System.Text.Encoding.Default.GetString(ms.ToArray());  
    }
      

  4.   

    需要引用以下命名空间
    using System.Security.Cryptography;
    using System.IO;
    using System.Text;
      

  5.   

    CSharpProgrammer(风儿吹过) :你真好,谢谢你
      

  6.   

    CSharpProgrammer(风儿吹过): 
    我试过了,string ened=Encrypt("eeee","10");
    编译运行后提示“指定键的大小对于此算法无效”。
    这是怎么回事呀??是不是Key值的原因呢??