/// <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()); } } }
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); }
public static void EncodingIsSetCorrectly() { var crypto = new SymmetricCrypto(Array.Empty <Credential>(), Encoding.ASCII); crypto.Encoding.Should().Be(Encoding.ASCII); }