首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何创建基于串行密钥的激活机制,以及在DB上存储哪些数据?

如何创建基于串行密钥的激活机制,以及在DB上存储哪些数据?
EN

Stack Overflow用户
提问于 2012-09-05 16:18:57
回答 1查看 709关注 0票数 0

我目前正在研究如何为基于web的产品管理平台创建一种基于序列密钥的激活机制(语言并不重要,因为这更多的是一个设计问题),在该机制中,销售的每个产品都有一个注册在线支持的许可证密钥。

我有一个串行密钥编码器/解码器类,它生成AES加密的数据,然后进行base32编码以返回人类可读的密钥;我需要弄清楚在其中加密什么,它是否应该包含实际的产品代码或什么。

此外,编码器还会为每个序列生成不同的解密密钥,但我不确定是否喜欢这种方法。在这和对每个键使用盐之间,哪一个是最好的?另外,我应该在哪里存储解密密钥和盐?我在考虑DB,以及激活密钥,用于盐或解密密钥,如果当前的方法是有效的,这是正确的吗?

我还要求保持密钥的长度,这意味着我不能在我的加密中传递一定数量的字符。激活密钥应该保存实际的产品数据,还是只指向数据库中作为PK的匹配行,并从那里读取我需要的所有内容?

提前感谢您的回复,我希望我的问题不是太粗略;请容忍我,因为我对这个特定的主题相对较新。我已经阅读了其他问题,但似乎没有一个问题解决了在基于web的环境中实际存储激活密钥的问题。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-09-05 18:02:59

在我看来,根本不需要加密。

您可以创建强随机字节(例如,使用/dev/urandom)并将其用作激活密钥。

64比特的随机性(从urandom读取8个字节)可能就足够了,因为它提供了大约2^32个“激活密钥”,而不会发生冲突。当然,要确保它适合您的特定情况。

例如,您的激活密钥可能如下所示(十六进制编码并与“-”拼接):

代码语言:javascript
复制
28d7-59bf-0a29-b482
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12277232

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档