如何在winrt中使用加密,其中可以将字符串加密为指定长度的密文
本文关键字:加密 字符串 密文 winrt | 更新日期: 2023-09-27 18:13:29
我正在创建一个windows UWP应用程序,我需要对字符串进行加密并将其插入到azure表中。我尝试使用DataProtectionProvider.ProtectAsync()
方法,它工作得很好,除了加密的字符串碰巧变得非常大。我想要一个可以指定加密字符串长度的加密。或者我有什么选择?
我要找的操作是这样的
string encryptedText = encryptPlainText(plainText, password, encryptedTextSize);
编辑:我的要求是:我试图沿着toDo应用程序创建一些东西。我使用Azure移动服务及其同步框架只是为了安全,我想对数据使用加密。但是我知道我们只能在一列中保存64Kb的数据,因此我不希望加密占用大部分空间。我有什么选择?
您不能随意设置您想要的密文的长度。它将是输入大小的函数,加上任何所需的填充,IV和签名/mac。
IIRC,对于像AES-GCM这样的东西,您将有28个字节的额外扩展,12个字节用于IV, 16个字节用于身份验证标记。此外,您可能希望对密文进行Base64编码,这会将密文扩展4/3。
在不了解您的需求的情况下,您很可能不想使用DataProtectionProvider
。它比DAPI更灵活,但我认为它仍然只使用Active Directory凭据或本地用户/计算机帐户进行加密。问题是,如果在本地帐户的保护下,您可能无法在其他机器上解密。
你应该把你的需求贴出来,这样人们就可以为你真正想做的事情提供更好的建议。