我正在使用c#制作一个关于团结的小游戏。它基本上是一个2d侧滚动转轮类型的游戏。我测量每个玩家完成游戏所需的时间,并将其存储在浮点数上。我想把它和一个盐字放在一个字符串中,并向播放器显示一个加密的代码。
代码必须足够小,以便由播放器轻松地写下来。我应该能够解密玩家将发送给我的代码,并计算出他/她完成游戏所花费的时间。
请告诉我该怎么做。我在网上看到的大多数算法都非常复杂,产生了大量的加密文本。
提前谢谢。
发布于 2016-08-29 14:36:12
以下是Rot13想法的一些变体。Rot39也只置乱字符的一个子集,它不是像凯撒那样简单的算术。
public static string Rot47(string input)
{
return !string.IsNullOrEmpty(input) ? new string(input.Select(x =>
(x >= 33 && x <= 126) ? (char)((x + 14) % 94 + 33) : x).ToArray()) : input;
}
public static string Rot13(string input)
{
return !string.IsNullOrEmpty(input) ? new string(input.Select(x =>
(x >= 'a' && x <= 'z') ? (char)((x - 'a' + 13) % 26 + 'a') :
(x >= 'A' && x <= 'Z') ? (char)((x - 'A' + 13) % 26 + 'A') : x).ToArray()) : input;
}
public static string Rot39(string input)
{
// This string contains 78 different characters in random order.
var mix = "QDXkW<_(V?cqK.lJ>-*y&zv9prf8biYCFeMxBm6ZnG3H4OuS1UaI5TwtoA#Rs!,7d2@L^gNhj)EP$0";
var result = (input ?? "").ToCharArray();
for (int i = 0; i < result.Length; ++i)
{
int j = mix.IndexOf(result[i]);
result[i] = (j < 0) ? result[i] : mix[(j + 39) % 78];
}
return new string(result);
}一个好的黑客可能需要大约15分钟的时间才能用黑匣子测试出Rot39。
https://stackoverflow.com/questions/23780833
复制相似问题