2017-03-09 60 views
1

我有一個使用加密/ aes加密和解密明文的go腳本。Golang在不同的機器上生成相同的加密

https://play.golang.org/p/le_-uuzWN4

我想在不同的計算機使用,併產生相同的加密文本此腳本。我認爲,通過自定義IV,無論在哪裏,都會產生一致的加密。 眼下它產生於在旅途中操場上與https://repl.it/languages/go

是否有可能產生一致的加密,否則將永遠是不同的,由於內部實現不同的效果(例如加密鹽等。)

而且,究竟是什麼IV,我仍然對此感到困惑。該文件沒有真正解釋它是什麼

+1

的IV是一個隨機數生成相同的加密。重用IV會打破它的目的,並可能破壞你的加密。 – JimB

+0

現在變得更有意義。這是否意味着無法生成相同的一致加密? – Sakib

+0

不安全,您爲什麼要這麼做?生成可預測的輸出會破壞加密它的目的。這聽起來像你有一個不同的問題,你試圖解決。你在尋找一個密碼散列函數嗎? – JimB

回答

-1

我想出了它爲什麼每次都生成不同的密文。該IV是隨機的這一發言

if _, err := io.ReadFull(rand.Reader, iv); err != nil { 
    panic(err) 
} 

刪除其將保持不變IV,它會給出任何機器上相同鍵的IV

+1

不要這樣做。只需在解密時使用IV加密數據前綴,IV不需要保密。 – zaph

+0

這在某些實現中確實是必需的。例如,我在我的一個應用程序中使用PayTM作爲支付網關,並且在那裏IV應該是固定的。 –

相關問題