DES中的C#加密

时间:2013-10-30 04:47:44

标签: c# encryption des

我有一个十六进制的密钥为1C19D5ED8D88DC40,十六进制的数据为041164DFFFFE7FF7

我应该使用 DES加密来获取十六进制的加密值B652FF1BA23C279B。我使用DES的所有可能的加密方法都苦苦挣扎,但无法获得准确的值。我在这个link中找到了它,我将上面十六进制的二进制值作为输入传递并得到了所需的值。

帮助C#代码获取上述值。

    public static string Encrypt(string Data,string Key)
{
    byte[] key = Encoding.ASCII.GetBytes(Key);
    // byte[] iv = Encoding.ASCII.GetBytes("password");
    byte[] data = Encoding.ASCII.GetBytes(Data);
    byte[] enc = new byte[0];
    TripleDES tdes = TripleDES.Create();
    //tdes.IV = iv;
    tdes.Key = key;
    tdes.Mode = CipherMode.ECB;
    tdes.Padding = PaddingMode.Zeros;
    ICryptoTransform ict = tdes.CreateEncryptor();
    enc = ict.TransformFinalBlock(data, 0, data.Length);
    return Bin2Hex(enc);

}
// my bin2hex implementation        
static string Bin2Hex(byte[] bin)
{
    StringBuilder sb = new StringBuilder(bin.Length * 2);
    foreach (byte b in bin)
    {
        sb.Append(b.ToString("x").PadLeft(2, '0'));
    }
    return sb.ToString();
}

0 个答案:

没有答案