缩短.NET中的数据链条加密长度



我是.NET的新手,并且有一个有关dataprotector的问题。

使用dataprotector.protect而无需任何配置,因此所得的加密对于我需要将其传递给的API来说太长了,我想知道使用配置方法(如下所示)是否会有所帮助?我在班级中尝试了以下内容来保护数据:

var serviceCollection = new ServiceCollection();
            serviceCollection.AddDataProtection()
                .UseCustomCryptographicAlgorithms(new ManagedAuthenticatedEncryptionSettings()
                {
                    // a type that subclasses SymmetricAlgorithm
                    EncryptionAlgorithmType = typeof(Aes),
                    // specified in bits
                    EncryptionAlgorithmKeySize = 128,
                    // a type that subclasses KeyedHashAlgorithm
                    ValidationAlgorithmType = typeof(HMACSHA256)
                });
            var services = serviceCollection.BuildServiceProvider();
            _protector = services.GetDataProtector("MyClass.v1");
var protect = _protector.Protect(JsonConvert.SerializeObject(myData));

然而,即使将EncryptionalGorithMkeySize从默认的256更改为最小128," Protect"仍然导致加密相同的长度,这使我认为配置不起作用或配置不影响加密长度。

有人知道这是正确的方法还是有更好的方法来减少加密长度?

例如,一个简单的9个字符字符串被加密到134个字符。

任何帮助都非常感谢!

dpapi旨在确保静止数据,而不是用于传输的数据。

瑞安·多布斯(Ryan Dobbs)在上方(还是以下?我都无法弄清楚堆叠的答案是多么糟糕的答案...),削弱了您的加密以达到较小的有效载荷是一个非常糟糕的主意。解决此问题的正确方法是确保连接(TLS风格的SSL),然后您只需将事物发送到明文,或(正如Ryan所建议的)丢弃正确加密的有效载荷,发送者和接收者都可以访问它。

但要更直接地回答您的问题,有效载荷大小由哈希功能控制。加密密钥大小仅告诉您加密算法的加密复杂性 - 加密有多么困难。说HMACSHA256是SHA-256哈希的部分,这意味着它产生了256位输出。

MD5是128位,但通常不安全(仅适用于校验和

文档显示关键大小和哈希大小必须等效,因此您不能使用SHA到128位。可用的最短SHA是旧的SHA1算法(HMACSHA1),即160位,但期望的是,相对较快的任何少于256位的东西都不会不安全。SHA2算法得出HMACSHA256HMACSHA512

相关内容

  • 没有找到相关文章

最新更新