【问题标题】:Encryption and decryption with same length of characters in sql serversql server中相同长度字符的加解密
【发布时间】:2018-08-10 14:12:11
【问题描述】:

我想用 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: 002581 -- output with same 6 characters in decrypted form

【问题讨论】:

  • 即使有办法做到这一点,您的要求也可能会限制可用的加密算法。此外,如果有恶意的人发现了这一点,他就会知道实际未加密密码的长度。也许你可以告诉我们你为什么认为你需要这个。
  • 基本上我想用相同长度的字符的输入代码来验证记录。这就是为什么我需要使用 sql server 技术进行这种加密和解密。
  • 当保存密码验证器时,仅使用哈希函数是不够的,并且仅添加盐对提高安全性无济于事。而是使用诸如PBKDF2Rfc2898DeriveBytesArgon2password_hashBcrypt 之类的函数或持续时间约为 100 毫秒的类似函数。关键是让攻击者花费大量时间通过蛮力查找密码。

标签: sql sql-server database encryption sql-server-2014


【解决方案1】:

简答:没有这样的安全加密方案。

更长的答案:任何类型的加密方案都会混淆纯文本的内容,使其与来自同一消息空间的其他消息无法区分。为此,无论输入纯文本如何,生成的所有密文都必须具有相同的长度(理想情况下)。至少长度应该不同于纯文本的长度。

所以请不要考虑这种加密技术。根据定义,它是不安全的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-02-08
    • 2020-06-03
    • 2012-12-23
    • 2019-09-11
    • 1970-01-01
    相关资源
    最近更新 更多