我继承了一个与Facebook集成的Rails应用程序,并对从Facebook发送的令牌进行加密,将其保存为用户的身份验证令牌。在Rails应用程序中优雅地重新加密令牌
由于各种原因,我最终更新了我的Ruby,并且发生了一些导致应用程序问题的Gemfile更改。最重要的是对attr_encrypted
的更改,它通过encrypted
gem处理该Facebook令牌在保存到数据库时的加密。
问题是,该应用程序是活的并且已经有很多用户,它有一个基本秘密加密密钥,对于新更新的attr_encrypted
的安全标准而言太短。特别是,当我尝试现在加密令牌时(现在进行测试;我没有实时推送这些更改),则会抛出错误,指出密钥需要为32个字节。
问题:
有没有人有更新到更安全的令牌的建议?如果我更改了令牌,我认为会中断令牌的解密,这样我可能会永久失去读取/使用数据库中所有用户身份令牌的能力。这显然很有问题,所以我想在这里仔细检查我的想法。
我目前的想法是迁移:运行迁移,循环遍历每个身份,使用我的旧密钥解密存储的令牌,然后使用新的更长的密钥保存新加密的令牌。
然后我可以摆脱旧的密钥没有任何问题。对?任何人都可以想到关于attr_encrypted
宝石的特性或加密问题的任何问题,通常我可能没有想到?
那么,什么是旧版本,有什么新的版本? –