我正在寻找以下代码(任何语言都可以,但最好是c#):
a,b,limit,key : integers
0< a, b, < limit (fits in less than int32)
b = forth(a, limit, key)
a = back (b, limit, key)我需要一些看起来随机的东西,这样(=)和(xor)就不够好了。
现在我研究了分组密码和伪随机生成器等,但它总是与加密,安全性和速度有关,并使用整数的整个大小。我对这些都不关心。我所需要的是一个关于域的双射,其中average of forth(a+epsilon) >> b+epsilon
发布于 2013-04-04 17:31:55
像下面这样简单的东西有什么问题吗?
int Forth(int a, int limit, int key)
{
return (limit - a) ^ key;
}
int Back(int b, int limit, int key)
{
return limit - (b ^ key);
}EDIT:改编自here的(不使用密钥-这是必要的吗?)
int Forth(int a)
{
return ((0x00FF & a)<<8) + ((0xFF00 & a)>>8);
}
int Back(int b)
{
return ((0x00FF & b)<<8) + ((0xFF00 & b)>>8);
}注:Back()和Forth()的功能相同...
https://stackoverflow.com/questions/15806959
复制相似问题