代码之家  ›  专栏  ›  技术社区  ›  user80452

如何生成包含加密数据的密钥代码?

  •  0
  • user80452  · 技术社区  · 15 年前

    情况:

    我想提供一个网站服务,用户可以在其中输入一些数据,例如15字节长的名称“name data”,并获得一个密钥代码。 然后,该代码可以用于解锁游戏中的某些功能(由我提供),还可以使用命名数据(想想一个名为“Lazgun of Peter”的自定义Lazgun,其中“Peter”是命名数据)。

    我的计划是用非对称加密(使用私钥)将名称数据和一些短签名(例如5字节的“hello”)加密到密钥代码(例如asdf-stack-0ver-fl0w-13abbx)中。

    然后,用户在游戏中输入密钥代码,然后用公开密钥将数据解码到名称数据和签名中,用户就得到了“彼得的拉兹根”。

    问题:

    问题(还是我的误解?)是典型的RSA加密只能用于加密密钥长度的数据,例如1024位,这对于我的密钥代码来说太长了-没有用户希望输入150多个字符的代码(假设每个输入字符大约有6位数据)。

    问题:

    我应该使用什么样的加密来获得合适的安全性,这样只有我的网站服务才能生成“正确”的代码,但是用户只需要输入与名称数据大小+签名+一些小开销有关的代码?

    注意:游戏可执行文件显然是公开的,其中存储的任何加密密钥都可以从中读取,但不能更改可执行文件本身(复制保护)。

    1 回复  |  直到 15 年前
        1
  •  0
  •   Johan Kotlinski    15 年前

    我认为将所有项目数据存储在实际的密钥代码中是错误的想法。

    创建唯一的下载代码更有意义。输入后,客户机将连接到服务器,并通过安全连接下载实际项目数据。

    这有什么意义吗?