有一单一连续的数据块 单位任意 可以是字节 也可以是位 
可以把他们看成一个一维数组  a[n]
现在我用一Hash函数把他们的顺序打乱 得到a1[n]
其中使用的算子就是加密的密钥A当解密的时候 
要把a1[n]重新还原成a[n]我要分2步进行 先用 一密钥B 对a1[n]排序 得a2[n]
然后用 密钥C 对a2[n]排序得a[n]其中   A是保密的  但我自己知道
B是每台计算机不同而不同我想根据 A 和 B 计算出 C请问有没有这样的算法 最好比较安全的
     A         B          C
a[n]---->a1[n]---->a2[n]------>a[n]C能够由 A 和 B 计算出来  

解决方案 »

  1.   

    这个根据硬件加密不都是这样吗?首先根据硬件号码(例如硬盘序列号a[n])+自己的密钥A===>计算得到注册码a1[n],
    然后根据a1[n]和序列号B再次求出另一密钥C,还原算法得到a[n]Blowfish很好用啊,你完全可以借助成熟的加密库,
    google一搜一把
      

  2.   

    首先根据硬件号码(例如硬盘序列号a[n])+自己的密钥A===>计算得到注册码a1[n],
    我的意思稍有不同 我不想 计算注册码的代码出现在我的程序中而是通过2次变换来还原