2015-09-03 30 views
0

我想混淆我的身份證我webapp。簡單號碼密碼混淆身份證

所以我需要改變 f(id) = hidden_id 與易於訪問f-1(hidden_id) = id

安全並不是什麼大問題,但如果f不明顯(如f(x) = ax + b),那將會很好。一個很好的信號是a < b => f(a) < f(b)是不正確的。

我的基本知識是加密告訴我,我應該看看像f(x) = x^a % b,但我還沒有找到我的方式,直到現在。

我以爲這是一個簡單的問題!

感謝

回答

0

我最後寫這些功能(通過做@ Niels2000建議的XOR招)

在Ruby:

def self.encrypt(id) 
    # Concat [1] because first number IS a 0 hence information is lost 
    ([1] + id.to_s(2).split('').reverse.map{ |b| 1 - b.to_i}).join('').to_i(2) 
    end 

    def self.decrypt(encrypted_id) 
    # Remove the [1] 
    (encrypted_id.to_s(2).split('').map{ |b| 1 - b.to_i}).join('')[1..-1].reverse.to_i(2) 
    end 
1

使用任何快速塊加密(AES,甚至老DES)用隨機固定鍵。它不是密碼安全的,但它具有所有期望的屬性。

1

我正要談論加密和XOR,但也許你真正需要的只是使用隨機ID。這取決於你想要抵禦的是什麼。

+0

ID都在那裏,我不能改變它們。 –

+0

雖然你可以映射它們。作中,生成隨機的ID,並將它們映射到一個簡單的表真實的id: – Niels2000

+0

示例: ID映射 100 5900c7c1bc1c 101 c2ab53a2ff2c 102 0f50b8d3c233 等,然後掩蔽然後走出去,將它們映射在去的Et。瞧! – Niels2000