我需要符合HIPAA标准,这些要求表明AES256加密足以存储敏感数据(名字,姓氏,SSN,ID,DOB,电话,VIN等)。
我倾向于通过应用程序代码加密,而不是使用MSSQL或MySQL内置的加密字段支持。避免SQL签名证书过程,设置MASTER KEY等。
我研究AES256加密使用。NET 6,大多数人被警告不要使用AES - CBC、ECB、EFB或CTS...事实上,即使是微软自己的文档也建议不要使用CBC,而是提供一个Aes类代码示例,在这里没有实际意义?在同一执行范围内加密然后解密...这在现实世界中几乎不会发生,在现实世界中,加密的数据会被保存,然后在以后的某个时间被检索和解密。
当搜索和/或报告(通配符)任何加密的数据时,性能显然会受到影响,在将数据返回给请求源之前,我必须遍历这些数据(这里我有一个线程化的多核策略)。
使用应用程序代码加密/解密SQL数据库中字段级数据的“当前”最佳实践方法是什么?除了全局应用程序密钥之外,我还需要分配一个字段来为我要加密的每个字段保存一个随机值吗?
如果要避免使用AES.NET6加密库,我还有什么其他选择?
你检查过这个问题吗?具有 Sql Server 列级加密的实体框架我认为如果您使用 EF Core 可能会很有用
您可以为此使用属性。
1-创建一个属性:
[AttributeUsage(AttributeTargets.All)]
public class EncryptData: System.Attribute
{
public EncryptData()
{
}
}
2 -想在哪里用就在哪里用:
public class Person
{
[EncryptData]
public string Name {get;set;}
}
3 - 在插入物上使用它:
public void Insert(T entity)
{
// your code
EncryptFields(entity,_context);
dbContext.SaveChanges();
}
`
public virtual T EncryptFields(T entity, MyDbContext dbContext)
{
MetadataTypeAttribute[] metadataTypes = entity.GetType().GetCustomAttributes(true).OfType<MetadataTypeAttribute>().ToArray();
foreach (MetadataTypeAttribute metadata in metadataTypes)
{
PropertyInfo[] properties = metadata.MetadataClassType.GetProperties();
foreach (PropertyInfo pi in properties)
{
if (Attribute.IsDefined(pi, typeof(DB.PartialEntites.EncryptData)))
{
int id = ((EncryptData)pi.GetCustomAttributes(true)[0]).id;
dbContext.Entry(entity).Property(pi.Name).CurrentValue = // YOUR ENCRYPTION ALGORITHM;
}
}
}
return entity;
}
本文向大家介绍ASP.NET web.config中 数据库连接字符串加密解密,包括了ASP.NET web.config中 数据库连接字符串加密解密的使用技巧和注意事项,需要的朋友参考一下 虽然不怎么新鲜,但相信还是有许多人不知道,好,不说废话,直接给方法:开始--->运行,输入cmd,接着输入以下内容 加密: C:\WINDOWS\Microsoft.NET\Framework\v2.0.50
问题内容: 我正在通过Apache和Node.js服务器之间的不安全连接发送数据。我需要在PHP中加密数据并在Node.js中解密。我花了2天的时间使它正常工作,但是我只设法使消息签名正常工作,没有加密。我尝试将AES128-CBC,AES256-CBC,DES,AES128,AES256作为算法传递,但是效果不佳。 我在PHP中尝试过: 在Node.js中: 而且除了错误的解密数据外,我还会得到
问题内容: 尝试使用javax.crypto库对字符串进行加密并将其存储在数据库(Oracle)中。稍后我将需要解密此字符串,因此我需要双向算法。 问题是数据库似乎不接受该方法创建的某些加密字符。我们介于将数据库迁移到新服务器之间。旧数据库使用US7ASCII字符集,而新数据库使用AL32UTF8。当我将加密的字符串放入数据库中时,数据库只是将它们转换为US7ASCII数据库中的问号(?)。它似乎
所以我使用下面的代码来加密/解密可以存储在设备首选项中的字符串值,但我知道需要添加一个加密/解密ArrayList的方法,该方法也可以存储在首选项中(所以我猜加密需要将arraylist转换为字符串,然后解密需要将该字符串转换回arraylist)。由于我对Android/Java非常陌生,因此我很难弄清楚如何做到这一点,因此任何帮助都将不胜感激。
如有任何帮助,我们将不胜感激!
我感兴趣的是构建一个个人使用的小应用程序,它将使用JavaScript在客户端加密和解密信息。加密的信息将存储在服务器上的数据库中,但不会存储解密的版本。 它不一定要是超级duper安全的,但我想使用一个当前未中断的算法。 理想情况下我可以做一些 生成编码字符串,以及类似于 以后再解码。 到目前为止,我已经看到了以下内容:http://bitwiseshiftleft.github.io/sjcl