AJM*_*AJM 2 c# security passwords sql-server-2008
我有一个哈希密码存储在我的SQL Srever数据库中
不确定是否在存储之前将其转换为基本64字符串或是否将其存储为varbinary.
如果它是基础64,那么在我的C#中处理起来会更容易,但我不确定这种方法是否存在缺陷.
使用base 64没有安全性缺点,因为它只是二进制数据的不同表示形式,只要您不认为Base 64是添加一层安全性.由于Base 64很容易被任何人解码(因为它不使用密钥),因此它不是安全层,而只是一种不同的格式.我强调这一点是因为我看到使用Base 64来混淆敏感数据导致了很多漏洞.攻击者很容易找到这些数据(在这种情况下我是.不用担心,这是学术界的安全级别;-)).应使用服务器的密钥对所有敏感数据进行加密.
我更喜欢自己使用Base 64,因为它可以像字符串一样轻松处理.我总是在加密后将二进制数据转换为Base 64.
正如评论中提到的explunit,它会慢慢减慢你的算法.然而,通过花费周期转换到Base 64来减慢算法实际上是对安全性的加分,因为它使得暴力加密攻击对于攻击者来说不太可行.