.net使用可打印字符结果进行快速安全加密的方法
我有一个每天接收大约1500万条记录的系统(在单独的文件中,每个文件有大约150K条记录)。系统将这些文件从二进制转换为ascii,然后将数据输入多个下游系统。 现在有一个新的要求,我们必须加密每个记录中的一个字段(我们称之为字段a),字段a的长度总是在6到10位之间 1.加密方式应确保加密结果 包含可打印字符 2.这里的表演非常重要 3.我们在每个记录中都有其他字段,可以用作加密/解密密钥,如日期-时间,但不能保证这些其他字段是唯一的(这应该不重要) 4.其他下游系统应该能够使用密钥解码结果(我对数据加密非常陌生,但我认为该密钥称为私钥) 5.我读过关于盐渍的不同文章,你认为盐渍在我们的场景中有什么用处吗.net使用可打印字符结果进行快速安全加密的方法,.net,encryption,.net,Encryption,我有一个每天接收大约1500万条记录的系统(在单独的文件中,每个文件有大约150K条记录)。系统将这些文件从二进制转换为ascii,然后将数据输入多个下游系统。 现在有一个新的要求,我们必须加密每个记录中的一个字段(我们称之为字段a),字段a的长度总是在6到10位之间 1.加密方式应确保加密结果 包含可打印字符 2.这里的表演非常重要 3.我们在每个记录中都有其他字段,可以用作加密/解密密钥,如日期-时间,但不能保证这些其他字段是唯一的(这应该不重要) 4.其他下游系统应该能够使用密钥解码结果(
你认为我在这里使用的最好的加密算法是什么?.net framework是否提供了此算法的实现?这里有两个不同的问题:
- 根据您的安全要求选择适当的加密算法
- 将结果表示为可打印字符串
Convert.ToBase64String(byte[])
。我所知道的所有加密算法都是以二进制数据的形式工作的,因此您需要首先将输入转换为二进制数据(例如,使用Encoding.UTF8.GetBytes(text)
),然后进行加密,然后使用convert.ToBase64String
将其转换回文本。解密是使用Convert.FromBase64String
,然后将解密二进制应用到二进制算法,然后反转原始转换(例如Encoding.UTF8.GetString(binary)
)
您还没有提供足够的信息来确定应该使用哪种加密算法——例如,它应该是对称的还是非对称的——但是satting通常涉及单向散列,而不是可逆加密。不过,初始化向量方面的类似概念也适用于几种加密算法
中有可用的加密算法,其中几个可用于您的场景。:感谢您的回答,我认为对称算法是我最好的选择,因为我们只有在e系统上进行加密。另一个原因是,下游系统可能连接到sql server并收集加密记录,或者将使用生成的文件,但在任何情况下,我们都不能为每个系统创建单独的记录。谢谢