我们在SQL Server表中有一个类型为varchar(25)
的列,当它们应该使用AES加密时,错误地插入了纯文本值。我们将从数据库中删除纯文本值。计划是验证字段的块大小,但这会导致留下一些未加密的值。是否还有其他标准可以检查以确定有效的加密数据?
我们需要它是一个仅限T-SQL的解决方案。
只是挖了一点,它从网络服务中获取价值。此Web服务使用ASP.Net中的AES对它们进行加密。它接受返回的字节数组,然后使用此方法将字节数组转换为字符串:
static public string ByteArrToString(byte[] byteArr)
{
byte val;
string tempStr = "";
for (int i = 0; i <= byteArr.GetUpperBound(0); i++)
{
val = byteArr[i];
if (val < (byte)10)
tempStr += "00" + val.ToString();
else if (val < (byte)100)
tempStr += "0" + val.ToString();
else
tempStr += val.ToString();
}
return tempStr;
}
为清楚起见,我应该说我最初并没有写这段代码!
干杯
答案 0 :(得分:0)
不是真的,特别是因为编码方法看起来不正常。 base64编码数据更常见,这使得它非常独特。这实际上取决于未加密数据是由多少容易确定数据是否被加密 - 例如,它是单词,数字,是否有空格等(因为编码数据没有空格)
您的编码数据看起来都是数字表示为字符串,因此根据数据的长度,您可以看到您的列是否会转换为BIGINT。
不确定最好的方法,但这里有一个答案可以帮助你在T-SQL中“尝试演员”StackOverflow-8453861