在sql server中使用相同长度的字符进行加密和解密
我想使用sql server对长度相同的字符串进行加密,并对长度相同的字符串进行解密。例如:在sql server中使用相同长度的字符进行加密和解密,sql,sql-server,database,encryption,sql-server-2014,Sql,Sql Server,Database,Encryption,Sql Server 2014,我想使用sql server对长度相同的字符串进行加密,并对长度相同的字符串进行解密。例如: Encryption Input: Encrypt("002581") -- with 6 characters Result: a&pE12 -- output with same 6 characters in encrypted form Decryption Input: Decrypt("a&pE12") -- with 6 characters Result: 00258
Encryption
Input: Encrypt("002581") -- with 6 characters
Result: a&pE12 -- output with same 6 characters in encrypted form
Decryption
Input: Decrypt("a&pE12") -- with 6 characters
Result: 002581 -- output with same 6 characters in decrypted form
简短回答:没有这样的安全加密方案 更长的答案:任何类型的加密方案都会混淆纯文本的内容,使其无法与来自同一消息空间的其他消息区分开来。要做到这一点,生成的所有密码文本必须具有相同的长度(理想情况下),而不考虑输入的纯文本。至少长度应该不同于纯文本的长度
请不要考虑这样的加密技术。根据定义,它是不安全的。即使有办法做到这一点,您的需求也可能会限制可用的加密算法。此外,如果一个恶意的人发现了这一点,他将已经知道实际未加密密码的长度。也许你可以告诉我们为什么你认为你需要这个。基本上我想用相同长度的字符验证记录的输入代码。这就是为什么我需要使用sql server技术进行加密和解密。当保存密码验证器时,仅使用哈希函数是不够的,仅添加一个salt对提高安全性几乎没有作用。相反,使用诸如
PBKDF2
、Rfc2898DeriveBytes
、Argon2
、password\u hash
、Bcrypt
等函数或类似函数,持续时间约为100ms。重点是让攻击者花费大量时间通过暴力手段查找密码。