首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >可逆的[1..limit] -> [1..limit]函数

可逆的[1..limit] -> [1..limit]函数
EN

Stack Overflow用户
提问于 2013-04-04 17:10:33
回答 1查看 86关注 0票数 0

我正在寻找以下代码(任何语言都可以,但最好是c#):

代码语言:javascript
复制
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

EN

回答 1

Stack Overflow用户

发布于 2013-04-04 17:31:55

像下面这样简单的东西有什么问题吗?

代码语言:javascript
复制
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(不使用密钥-这是必要的吗?)

代码语言:javascript
复制
int Forth(int a)
{
    return ((0x00FF & a)<<8) + ((0xFF00 & a)>>8);
}

int Back(int b)
{
    return ((0x00FF & b)<<8) + ((0xFF00 & b)>>8);
}

注:Back()Forth()的功能相同...

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15806959

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档