我可以使用CellFormatting事件在datagridview中显示解密的加密值。但是如何使这个可编辑,这样输入一个新的字符串会将它加密到绑定属性,并仍然显示为书面(解密)..?一旦我完成编辑单元格并离开,它就会在Decrypt方法中出现异常。
FormatException:Base-64 char数组的长度无效。
public static string DecryptData(string stringToDecrypt)
{
byte[] decryptedData = ProtectedData.Unprotect(Convert.FromBase64String(stringToDecrypt), Encoding.Unicode.GetBytes(EntropyValue), DataProtectionScope.LocalMachine);
return Encoding.Unicode.GetString(decryptedData);
}
答案 0 :(得分:0)
答案 1 :(得分:0)
如果您在加载网格时总是在解密该字段,那么您只需加密它以将更改保存到数据库中?
挂钩cellValidating或类似事件以查看是否有更改以及是否存在加密 - >保存到数据库 - >然后从数据库刷新/重新加载网格。
当你重新加载时,你将带来新的base64编码版本的字段,然后很好地解密,避免错误