可逆在java中重排一个int数组[复制]

参见英文答案 >
Reversible shuffle algorithm using a key                                    4个

我有一个相当大的int数组.我需要使用密钥完全洗牌.我应该能够使用相同的密钥获取原始数组.我搜索了任何shuffle算法,但我发现像Fisher Yates的那个没有使用密钥.

int数组是图像的像素值.我需要隐藏数据.因此,在对阵列进行混洗之后隐藏数据只有在拥有密钥时才能访问数据.

最佳答案 Fisher-Yates使用伪随机数生成器,您可以使用密钥来种子(查找加密PRNG).要反转该过程,使用相同的密钥对索引[0,n)的数组进行混洗,然后执行反向混洗.

点赞