情况:
我想提供一个网站服务,在那里用户可以输入一些数据,例如15字节长的名称"namedata“,并获得一个关键代码。然后,这些代码可以用来解锁游戏中的一些功能(由我提供),也可以利用namedata (想一想名为"Lazgun of Peter“的自定义Lazgun,其中"Peter”是namedata)。
我的计划是使用非对称加密(使用私钥)将namedata与一些简短的签名(例如5字节"hello")一起加密到密钥代码中(类似AsdF-STaCK-0VEr-FL0W-13Abbx)。
然后用户在游戏中输入密钥代码,游戏然后使用公钥将数据解码为game _ data和签名,瞧,用户得到了它的“彼得的拉兹冈”。
问题:
问题(还是我的误解?)典型的RSA加密只能用于加密密钥长度的数据,例如1024位,这对于我的密钥码来说太长了-没有用户想要输入带有150+字符的代码(假设每个输入字符大约6位数据)。
问题:
我应该使用什么样的加密来获得良好的安全性,这样只有我的网站服务才能生成“正确”的代码,而用户只需输入名称大小的代码+签名+一些小开销?
注意:游戏可执行文件显然是公开提供的,存储在其中的任何加密密钥都可以从其中读取,但可执行文件本身不能被更改(复制保护)。
发布于 2009-05-30 10:40:11
我认为将所有项目数据存储在实际的键代码中是错误的。
创建一个唯一的下载代码更有意义。输入后,客户端将连接到服务器,并通过安全连接下载实际的项目数据。
这有什么意义吗?
https://stackoverflow.com/questions/929433
复制相似问题