使用MD5加密確定前臺傳輸數據是否有效

1、前臺數據傳輸

當前臺給後臺傳輸數據時,除了最基本的參數,還需要傳輸一個根據參數以MD5形式生成的一個簽名。

例如參數爲:

{"a" : 1, "b" : 2, "c" : 3}

那麼我們將數據拼成一個如下的字符串

a=1&b=2&c=3

但是除了這些參數,我們還要在前後臺統一一個key,作爲混淆

例如使用"key" = "jinx",也將其拼入字符串

結果爲:a=1&b=2&c=3&key=jinx

將這個字符串通過js進行MD5加密,會生成一個字符串,我們將此字符串(假設爲"str")也拼入參數,結果爲

{"a" : 1 , "b" : 2 , "c" : 3 , "sign" : "str"}

我們將此數據傳入後臺

 

2、後臺驗證數據是否合法

在後臺,我們將傳來的數據(除sign之外)在此進行md5,加密,key與前臺相等

這樣我們在後臺也將生成一個sign簽名,然後將此簽名與前臺傳過來的sign相比,如果相等,則有效,反之則無效。

 

3、個人認爲的優點與缺陷

在這種情況下,不正常操作(例如:直接調用接口或者在傳輸中篡改數據)這種會修改參數的情況下,即使參數被改變,但是sign值是不可能改變的。所以後臺會不接受此參數。

但是我認爲問題在於,在瀏覽網頁時,是可以看到網頁所使用的js文件的,不知道這樣會不會導致MD5算法泄露問題,這個問題有待思考。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章