我目前正在研究如何为基于 Web 的产品管理平台创建基于序列密钥的激活机制(语言无关紧要,因为这更像是一个设计问题),其中每个产品已售出具有注册在线支持的许可证密钥。
我有一个串行密钥编码器/解码器类,它生成 AES 加密数据,然后进行 base32 编码以返回人类可读的密钥;我需要弄清楚要在那里加密什么,它是否应该包含实际的产品代码或什么。
此外,编码器也会为每个序列生成不同的解密密钥,但我不确定我是否喜欢这种方法。在这和每个键使用盐之间哪个最好?另外,我应该在哪里存储解密密钥和盐?我正在考虑数据库以及激活密钥、盐或解密密钥,以防当前方法有效,这是正确的吗?
我还需要保持密钥长度不变,这意味着我不能在加密中传递一定数量的字符。激活密钥应该保存实际的产品数据,还是只指向数据库上的匹配行,其中激活密钥充当 PK 并从那里读取我需要的所有内容?
提前感谢您的回复,我希望我的问题不是太粗略;请耐心等待,因为我对这个特定主题相对较新。我已经阅读了其他问题,但似乎都没有解决在基于 Web 的环境中实际存储激活密钥的问题。