如何设计系统以允许加密迁移?

2024-01-01

我想建立一个系统,允许我将加密密码(哈希密码)从一个系统迁移到另一个系统。我该怎么做?

比如说 2 个月后,我发现了一种加密方法,其性能提高了 10 倍,并且当前的哈希函数已被毫无疑问地证明是完全脆弱的。我将如何将用户密码从一种哈希类型迁移到另一种类型(更好的哈希类型)。


You can slowly使用以下技术从一种方法迁移到另一种方法。我不能保证它的质量,所以请持保留态度(不是双关语)。

例如,考虑下表,该表存储用户:

id    name    password    salt    hashmethod
--------------------------------------------
1     alice   ABC52...    ABD...  md5
2     bob     28DHF...    Z+d...  sha1
...

说你的outdatedhash方法是md5,你想用更安全的替换它sha1, 这是你做的:

  • A user logs in, you hash its password with the new method (sha1) and salt.
    • a) 如果找到匹配项(相应的用户名和密码以及方法 sha1),则记录该用户。
    • b) If a match is not found:
      • 1) You hash with the old method (md5) and salt.
        • a) 如果找到匹配项(对应的用户名和密码以及方法 md5),则使用以下命令对密码进行哈希处理new方法(sha1)和盐,并相应地更新数据库。用户已登录。
        • b) 如果匹配是not发现凭据无效并且用户未登录。

此迁移可能需要很长时间,因此为了加快速度,您应该向用户发送电子邮件,要求他们登录或更改密码。

希望能帮助到你。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何设计系统以允许加密迁移? 的相关文章

  • 使用 CryptUnprotectData 解密 WEP wlan 配置文件密钥

    我正在尝试使用解密 WEP 配置文件的密钥加密解除数据保护 http msdn microsoft com en us library windows desktop aa380882 28v vs 85 29 aspx 我获取配置文件密钥
  • 使用javascript向url添加哈希而不滚动页面?

    在不滚动页面的情况下向 url 添加哈希 使用 JavaScript 我打开页面 我向下滚动 我单击添加哈希的链接 可能带有值 test 示例 http www example com test http www example com t
  • Android 中的字符串加密

    我正在使用代码进行加密和加密 它没有给出字符串结果 字节数组未转换为字符串 我几乎尝试了所有方法将字节数组转换为字符 但没有给出结果 public class EncryptionTest extends Activity EditText
  • 解码 OAEP 填充时出错

    我的问题已经解决了一半 请帮助 我已使用数字签名的公钥成功加密了文本 但在解密时出现错误 解码 OAEP 填充时出错 我的代码如下 region Test Encryption public void a using var rsa new
  • 在同步函数中使用 javascript `crypto.subtle`

    在javascript中 是否可以使用浏览器内置的sha256哈希 https developer mozilla org en US docs Web API SubtleCrypto digest Converting a digest
  • NGINX hashbang 重写

    我想知道 hashbang url 的位置或重写 nginx 指令会是什么样子 基本上像前端控制器一样通过 hashbang 路由所有非 hashbanged url 所以 http example com about staff 将路由至
  • 使用单个查询和每用户密码盐进行用户登录

    我决定使用存储在数据库中的每用户盐来实现用户登录 盐作为密码的前缀 该密码使用 SHA 进行哈希处理并存储在数据库中 过去 当我不使用盐时 我会使用典型的方法 使用用户输入的用户名和密码来计算查询返回的行数 然而 对于每个用户的盐 您需要先
  • 使用 Ruby on Rails 进行设计 - 强制用户在首次登录时更改密码

    我有一个运行 Devise 的 RoR 应用程序 Rails 4 2 Ruby 2 2 0 我已经进行了设置 以便管理员用户 标识了我添加到用户模型中的 is admin 布尔值 能够创建新的用户帐户 为他们提供生成的密码和确认电子邮件 这
  • 使用 AesManaged“填充无效且无法删除”

    我正在尝试使用 AesManaged 进行简单的加密 解密 但在尝试关闭解密流时不断出现异常 这里的字符串被正确加密和解 密 然后在 Console WriteLine 打印正确的字符串后 我收到 CryptographicExceptio
  • NodeJS 在目录中递归地哈希文件

    我能够实现目录中的递归文件遍历 即探索目录中的所有子目录和文件 为此我使用了answer https stackoverflow com questions 5827612 node js fs readdir recursive dire
  • 防止 .exe 时间戳发生变化

    有谁知道如何防止可执行文件的时间戳更改 我正在尝试为 exe 生成一致的哈希代码 但我认为时间戳可能会阻止这种情况发生 每次我重新编译代码 VS C 时 FastSum 都会生成不同的校验和 Thanks PE 文件格式 如 EXE 中 具
  • 是否有一种加密技术可以将 8 位数字变成 10 或 11 位或更少的数字?

    我见过的许多加密技术都可以轻松加密一个简单的 8 位数字 如 12345678 但结果通常是 8745b34097af8bc9de087e98deb8707aac8797d097f 编造的 但你明白了 有没有办法加密这个 8 位数字 但生成
  • JSON 中的哈希到底是什么?

    我正在学习 JSON 但我发现你也可以将所谓的 哈希 放入 JSON 中 我在哪里可以找到什么是哈希 或者你能向我解释一下什么是哈希吗 另外 什么是哈希图 我有 C 和 C 经验 正在学习 JS Jquery 和 JSON 哈希是一个稀疏数
  • BadPaddingException:无效的密文

    我需要一些帮助 因为这是我第一次编写加密代码 加密代码似乎工作正常 但解密会引发错误 我得到的错误是 de flexiprovider api exceptions BadPaddingException 无效的密文 in the 解密函数
  • 为什么AES java解密返回额外的字符?

    请原谅我英语不好 我使用 mcrypt 我从这里得到它用于 php 和 java 的 MCrypt https snipt net raw ee573b6957b7416f28aa560ead71c3a2 nice 在我的android应用
  • 获取express.js中间件请求中“#”后的url

    我需要获取服务器中间件上的 url 使用express js 我用req url但是当 url 开头时 some urlreq url 返回 与req path 有没有办法获取url之后 在express js中 No URL 中以 符号永
  • 将 SQL Server 2008 DB 迁移到 Postgres [重复]

    这个问题在这里已经有答案了 我想将 SQL Server 2008 数据库迁移到 Postgres 有没有一种无痛的方法来做到这一点 是否有任何工具可以扫描架构和存储过程以标记兼容性问题 无痛http dbconvert com conve
  • Android 中的 RSA 加密

    我正在编写一个在 Android 中使用 RSA 的程序 我有以下问题 我正在获取 RSA 密钥 KeyPair kp kpg genKeyPair publicKey kp getPublic privateKey kp getPriva
  • ruby 字符串到哈希值的转换

    我有一个这样的字符串 str uu p xx m yy n zz m 我想知道如何将给定的字符串转换为哈希值 即我的实际要求是 有多少个值 符号之前 有m n和p 我不需要计数 我需要一个精确的值 这样输出效果会更好 m gt xx zz
  • 使用 CryptoJS 更改密钥 [重复]

    这个问题在这里已经有答案了 我正在使用 CryptoJS 来加密和解密文本 在这里 我只是获取消息并显示加密和解密消息 我使用DES算法进行加密和解密 这是我的 HTML 文件

随机推荐

  • SwiftUI TextField 在 ZStack 内的 VStack 中禁用(用 TextField 模拟警报)

    我需要发出警报SwiftUI有一个可编辑的文本域在里面 目前 SwiftUI 不支持此功能 截至Xcode 11 3 所以我正在寻找解决方法 我知道我可以通过将普通的 UIKit 位包装在UI托管控制器 但确实想坚持使用全 SwiftUI
  • 如何在JS中设置div内的值

    我有一些代码看起来像这样 document getElementById error style display block 当发生这种情况时 我还想显示应该显示的错误 该错误存储在另一个 JS 变量中 如何将该变量的值添加到 id err
  • CUFFT:当输入是倾斜数组时如何计算 fft

    我正在尝试查找动态分配数组的 fft 使用以下命令将输入 数组从主机复制到设备cudaMemcpy2D 然后进行 fft cufftExecR2C 并将结果从设备复制回主机 所以我最初的问题是如何在 fft 中使用音高信息 然后我在这里找到
  • 如何删除 php 帖子中的攻击性词语?

    假设 xyza 是一个坏词 我正在使用以下方法来替换攻击性词语 text str replace x Offensive words detected removed text 此代码会将 xyza 替换为 检测到并删除攻击性词语 但问题是
  • 调试本地 IIS Web 服务器上托管的 ASP.NET MVC3 应用程序

    我已经设法使用本地 IIS Web 服务器来托管我的 MVC3 应用程序 并且我可以调试它和所有内容 从托管它的机器 但是 当我从另一台计算机 我的 Mac 在 Parallels VM 中运行 Windows 发送请求时 我得到了预期的结
  • 将列表转换为一行 data.frame

    我有一个这样的列表 arg0 lt list code a n rep 10 3 列表中的对象数量是可变的 列表的对象是向量 只是一维对象 我想制定一个过程将列表转换为单行 data frame 如下所示 gt data frame cod
  • 基于 Term 的对象化数组

    我有这个数组 ary1d new Size Sym ArySym Ary functor Ary ArySym Size forall arg X Ary nb setarg X Ary Sym ary1d get Pos Ary Val
  • 为什么 cin 命令在缓冲区中留下“\n”?

    这与 cin 和 getline 跳过输入 https stackoverflow com questions 10553597 cin and getline skipping input但他们没有回答为什么会发生这种情况 只是回答如何解
  • Eclipse (STS)、Maven 和 maven-minify-plugin,它们可以一起工作吗?

    我正在做一个项目 负责 html css 和 javascript 我找到了这个maven minify 插件 http code google com p maven samaxes plugin这似乎正是我想要的 当我在服务器上使用 m
  • 计算多个字符串列中字符串的出现次数

    我有一个名为的数据框df看起来与此类似 除了 mat deliv 列的数量上升到 mat deliv 8 之外 还有数百个客户端和许多其他列Client ID and mat deliv 1 我在这里简化了它 Client ID mat d
  • int x = 'fooo' 是编译器扩展吗?

    我见过并使用过如下的 C 代码 int myFourcc ABCD 它可以在最新版本的 GCC 中运行 不确定有多新 标准中有此功能吗 这叫什么 我在网上搜索它时遇到了困难 EDIT 我也为未来的观察者找到了此信息 from 海湾合作委员会
  • Helm 图表如何具有值包含 {{ }} 的属性

    在 Helm Chart 中 我们可以将 value 定义为类似 Values name 的形式 它将被 Values yaml 中定义的实际值替换 但是 如果原始值具有类似的格式 例如 name 则在尝试安装该图表时 会由于 name 未
  • 将对象数组转换为对象值数组

    我正在尝试转换这个数组 let orders amount 100 user admin date March 6 2019 amount 120 user admin date March 6 2019 amount 80 user ad
  • 我可以通过编程方式控制 .NET Core 程序集重定向吗?

    问题 NET Core 2 0 netstandard 2 0 中是否有任何方法可以应用给定中未定义的程序集重定向application exe config运行可执行文件时的文件 也许某种编程方式 或者甚至通过使用一些特殊设置 标志运行可
  • 你可以同时运行 Coldfusion 和 PHP [重复]

    这个问题在这里已经有答案了 可能的重复 是否可以在同一服务器和网站上运行 Coldfusion 和 PHP https stackoverflow com questions 2444598 is is possible to run co
  • iOS 上的 Firebase Crashlytics 设置?

    我正在尝试集成 Firebase崩溃解决方案进入 iOS 我的应用程序 该应用程序启用了 Firebase 崩溃报告 我已按照文档进行操作here https firebase google com docs crashlytics upg
  • 老问题,如何确定不规则形状中的点?

    我学习 Html5 Canvas 有几个星期了 但是上面的问题困扰了我很长时间 不规则的形状 可能是圆形 矩形 椭圆形 多边形 或者由一些直线和贝塞尔曲线构造的路径 我找到了一些针对某些形状的算法 例如圆形 矩形和多边形 但是 如果我在画布
  • 带有打字稿的 nextjs API,将 NextApiRequest 查询参数限制为字符串类型[重复]

    这个问题在这里已经有答案了 在这个端点处理程序中 有没有办法限制req query在 NextJS 中NextApiRequest只是string类型而不是string string 例如 someQueryParam这里是string s
  • 内核模块如何卸载自身而不在内核日志中生成错误?

    我制作了一个简单的模块 可以在加载时打印 GDT 和 IDT 当它完成工作后 就不再需要它并且可以卸载 但如果它返回负数以停止加载 insmod会抱怨 并且错误消息将记录在内核日志中 内核模块如何优雅地卸载自身 据我所知 使用库存内核是不可
  • 如何设计系统以允许加密迁移?

    我想建立一个系统 允许我将加密密码 哈希密码 从一个系统迁移到另一个系统 我该怎么做 比如说 2 个月后 我发现了一种加密方法 其性能提高了 10 倍 并且当前的哈希函数已被毫无疑问地证明是完全脆弱的 我将如何将用户密码从一种哈希类型迁移到