public static string decryptString(string Value, byte[] Key, byte[] IV, stringIOType inputType, Encoding outputEncoding) { try { Monitor.Enter(_lock); byte[] baseValue; switch (inputType) { case stringIOType.base64EncodedString: baseValue = Convert.FromBase64String(Value); break; case stringIOType.HexEncodedString: baseValue = HexStringToByteArray(Value); break; default: baseValue = Convert.FromBase64String(Value); break; } return(outputEncoding.GetString(decryptBytes(baseValue, Key, IV))); } finally { Monitor.Exit(_lock); } }
public static string encryptString(string Value, string PassPhrase, Encoding PassPhraseEncoding, Encoding inputEncoding, stringIOType outputType) { try { Monitor.Enter(_lock); return(encryptString(Value, getKeyFromPassPhrase(PassPhrase, PassPhraseEncoding), getIVFromPassPhrase(PassPhrase, PassPhraseEncoding), inputEncoding, outputType)); } finally { Monitor.Exit(_lock); } }
public static string encryptString(string Value, byte[] Key, byte[] IV, Encoding inputEncoding, stringIOType outputType) { try { Monitor.Enter(_lock); byte[] baseValue = (byte[])Array.CreateInstance(typeof(byte), inputEncoding.GetByteCount(Value)); baseValue = inputEncoding.GetBytes(Value); switch (outputType) { case stringIOType.base64EncodedString: return(Convert.ToBase64String(encryptBytes(baseValue, Key, IV))); case stringIOType.HexEncodedString: return(ByteArrayToHexString(encryptBytes(baseValue, Key, IV))); default: return(Convert.ToBase64String(encryptBytes(baseValue, Key, IV))); } } finally { Monitor.Exit(_lock); } }