Example #1
0
 /// <summary>
 /// 标准的DES解密
 /// </summary>
 /// <param name="value">预解密值</param>
 /// <returns>已解密值</returns>
 public static string Decrypt(byte[] desKey, byte[] desIV, string value)
 {
     if (desKey.Length == 24) //3des
     {
         var crypto = new SymmetricCrypto(SymmetricMode.TripleDES, desKey, Encoding.ASCII);
         crypto.Mode    = CipherMode.ECB;
         crypto.Padding = PaddingMode.PKCS7;
         return(crypto.Decrypt(value));
     }
     else
     {
         using (DESCryptoServiceProvider cryptoProvider = new DESCryptoServiceProvider())
         {
             //从字符串转换为字节组
             byte[]       buffer = Convert.FromBase64String(value);
             MemoryStream ms     = new MemoryStream(buffer);
             CryptoStream cs     = new CryptoStream(ms, cryptoProvider.CreateDecryptor(desKey, desIV),
                                                    CryptoStreamMode.Read);
             StreamReader sr = new StreamReader(cs);
             return(sr.ReadToEnd());
         }
     }
 }
Example #2
0
        public void EncodingIsSetCorrectly()
        {
            var crypto = new SymmetricCrypto(new Credential[0], Encoding.ASCII);

            crypto.Encoding.Should().Be(Encoding.ASCII);
        }
 /// <summary>
 /// Constructor
 /// </summary>
 /// <param name="symmetricEncryptionKey"></param>
 protected EncryptBase(byte[] symmetricEncryptionKey)
 {
     _symmetricCrypto = new SymmetricCrypto(symmetricEncryptionKey);
 }
Example #4
0
    public static void EncodingIsSetCorrectly()
    {
        var crypto = new SymmetricCrypto(Array.Empty <Credential>(), Encoding.ASCII);

        crypto.Encoding.Should().Be(Encoding.ASCII);
    }