Random 32位随机映射函数
我正在寻找一个函数Random 32位随机映射函数,random,cryptography,Random,Cryptography,我正在寻找一个函数f,它将一个32位整数映射成另一个。函数应该是双射函数,虽然映射看起来应该是近似随机的,但它不需要加密安全。还有一个重要的额外要求:还应该有一个易于计算的函数g,它与f相反。g可以与f相同,但不是必需的。考虑到非加密要求,有许多选项,包括: 异或(伊利亚提到) 位旋转(f:向右旋转N位,g:向左旋转N位) 加法/减法(无溢出检查,因此int.MaxValue+1映射到int.MinValue,int.MinValue-1映射到int.MaxValue) A(很好的呼叫@Tho
f
,它将一个32位整数映射成另一个。函数应该是双射函数,虽然映射看起来应该是近似随机的,但它不需要加密安全。还有一个重要的额外要求:还应该有一个易于计算的函数g
,它与f
相反。g
可以与f
相同,但不是必需的。考虑到非加密要求,有许多选项,包括:
- 异或(伊利亚提到)
- 位旋转(f:向右旋转N位,g:向左旋转N位)
- 加法/减法(无溢出检查,因此int.MaxValue+1映射到int.MinValue,int.MinValue-1映射到int.MaxValue)
- A(很好的呼叫@Thomas,我专注于简单的呼叫:-)
- 异或(伊利亚提到)
- 位旋转(f:向右旋转N位,g:向左旋转N位)
- 加法/减法(无溢出检查,因此int.MaxValue+1映射到int.MinValue,int.MinValue-1映射到int.MaxValue)
- A(很好的呼叫@Thomas,我专注于简单的呼叫:-)
- 异或(伊利亚提到)
- 位旋转(f:向右旋转N位,g:向左旋转N位)
- 加法/减法(无溢出检查,因此int.MaxValue+1映射到int.MinValue,int.MinValue-1映射到int.MaxValue)
- A(很好的呼叫@Thomas,我专注于简单的呼叫:-)
- 异或(伊利亚提到)
- 位旋转(f:向右旋转N位,g:向左旋转N位)
- 加法/减法(无溢出检查,因此int.MaxValue+1映射到int.MinValue,int.MinValue-1映射到int.MaxValue)
- A(很好的呼叫@Thomas,我专注于简单的呼叫:-)