0

情况:

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

我的计划是使用非对称加密(使用私钥)将名称数据与一些短签名(例如 5 字节“hello”)一起加密到密钥代码中(类似于 AsdF-STaCK-0VEr-FL0W-13Abbx)。

然后用户在游戏中输入密钥代码,然后游戏使用公钥将数据解码为 namedata 和签名,瞧,用户得到了它的“Lazgun of Peter”。

问题:

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

问题:

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

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

4

1 回答 1

0

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

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

这有道理吗?

于 2009-05-30T10:40:11.257 回答