可以,只是不同的構造函數而已

解决方案 »

  1.   

    static string Encrypt(string datastr, string keystr) {
    DESCryptoServiceProvider desc = new DESCryptoServiceProvider();//des进行加密
    byte[] key = System.Text.Encoding.Unicode.GetBytes(keystr);
    byte[] data = System.Text.Encoding.Unicode.GetBytes(datastr);
    MemoryStream ms = new MemoryStream();//存储加密后的数据
    CryptoStream cs = new CryptoStream(ms,desc.CreateEncryptor(key, key),CryptoStreamMode.Write);
    cs.Write(data, 0, data.Length);//进行加密
    cs.FlushFinalBlock();
    return System.Text.Encoding.Unicode.GetString(ms.ToArray());//取加密后的数据
    }解密:
    static string Decrypt(string datastr, string keystr) {
    DESCryptoServiceProvider desc = new DESCryptoServiceProvider();
    byte[] key = System.Text.Encoding.Unicode.GetBytes(keystr);
    byte[] data = System.Text.Encoding.Unicode.GetBytes(datastr);
    MemoryStream ms = new MemoryStream();//存储解密后的数据
    CryptoStream cs = new CryptoStream(ms,desc.CreateDecryptor(key, key),CryptoStreamMode.Write);
    cs.Write(data, 0, data.Length);//解密数据
    cs.FlushFinalBlock();
    return System.Text.Encoding.Unicode.GetString(ms.ToArray());
    }注意几个问题:
    DES加密算法是对称加密,它的Key是8个字节,即64位,用Unicode编码的话就是4个字符(一个字符两个字节);加密和解密的Key必须一样。
      

  2.   

    呵呵!把例子里的程序改写成C的就好用了。