登錄頁面之數據保密及數據傳輸完整性校驗功能


  此功能由於前后台交互的設計比較繁瑣,所以此功能最好是一個人開發;在開發過程中所遇到的難點為:

  1.由於在國企,需要找到一種被國企安全測試認可的方法。

  2.此加密設計到前后台,需要找到一種前后台可以互相加解密的方法。

  3.在加密的過程中還要進行數據完整性校驗,防止惡意用戶在傳輸數據中篡改數據。

  在我的面向百度編程的模式下,最終定下了設計方案

  

  整體流程:本系統加密傳輸采用三層加密方式,解決了數據保密性和傳輸完整性等漏洞;第一層加密方式為{明文#md5(明文)}的方式,用來做數據完整性校驗;第二層對第一層加密之后的結果進行二次加密,加密方式采用RSA非對稱加密,前台使用公鑰進行加密,后台對應私鑰解密;第三層加密為國密4中的ECB加密模式,對第二層加密之后的結果進行三次加密,加密之后的數據進行傳輸,保證了數據的保密性。

后端接受到前端傳輸過來的數據,先進行國密4ECB模式進行解密,解密之后的數據通過RSA后端私鑰進行二次解密,此次解密之后的結果為{明文#md5(明文)}這種形式,以“#”進行分割,將明文進行md5加密,與前端傳輸過來的md5(明文)進行對比,如果對比結果不同,則給出提示,數據傳輸完整性被破壞,此方式解決了項目沒有數據完整性校驗的問題。

  

1、前端加密

 

前端填寫的明文:11112222

 

第一層:數據完整性校驗加密,采用{明文#md5(明文)} 的組合方式進行一次加密。

 

加密后密文:11112222#821f3157e1a3456bfe1a000a1adf0862

 

 

 

第二層:采用RSA非對稱加密的方式對第一層加密后的密文進行二次加密。

 

RSA公鑰:

 

MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCAnXPulvJauLsulRIiUJM0KvgFirtdF1k+VkZ8zxXkAE0DyJaY+4XwKx+mXKC9jvjvf+Sbez/yFUZigs/vPW6SqEWgemsjVl97Dk02mdrYxc0YV6fWH/7otPZ/p0BIJsWdDK/UdVXbSyy7myGxsINM+LlgflN322dmSJOUGCtWbwIDAQAB

 

RSA加密后密文:OG7UuV/Z4XezcckB8HmtVudvRHUG1nK05ARFX40D3z1WYvCZEuczNuqv8RzxpNMWxDtvBpvNdlB0jZ5SV1nP83V4K7tg4+rf3tQor5icxHfsFwolCnux/d4jbLIpHfuLSR+aQYiA4D2ThnJPay06I5XFaa0BEeErTQJ9QaDIpa8=

 

 

 

第三層:采用國密4對第二層加密后的數據進行加密,加密方式采用sm4中的ECB加密模式。

 

代碼截圖:

 

 

 

 

 

Sm4加密的密鑰:11HDESaAhiHHugDz

 

Sm4加密后的密文:sI1FGgmILLvO1PKkl1vdp0cKMU/TEzHKjbgR0zTXc1yQHJ5baygGrm3mhNkQzo4T5iQ3u5Mt1DFB4Dc4/y7hgGaX4Z7o5qnP8E2Ndfrhxv5DzGiXjFWggjiE2/xczAL3bz/Py5SHAPKhy1XZsnc5Bbk0PyP39gdmBAP2nhrZNq4/iJoB1euU/Ou4fdLAT2jk3ggaIQA/SFWFplx16dMK0peSGyV9oG4UPhtFmKd0Qz4=

 

 

 

前端加密的總體流程代碼:

 

 

 

 

 

 

 

2后端解密

 

第一層:前端加密傳輸過來的數據進行SM4中對應ECB模式的解密

 

SM4密鑰:11HDESaAhiHHugDz

 

SM4解密后的密文:OG7UuV/Z4XezcckB8HmtVudvRHUG1nK05ARFX40D3z1WYvCZEuczNuqv8RzxpNMWxDtvBpvNdlB0jZ5SV1nP83V4K7tg4+rf3tQor5icxHfsFwolCnux/d4jbLIpHfuLSR+aQYiA4D2ThnJPay06I5XFaa0BEeErTQJ9QaDIpa8=

 

SM4中對應ECB模式的解密代碼:

 

 

 

 

 

第二層:RSA根據私鑰對第一層解密后的數據進行解密

 

RSA私鑰:MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCAnXPulvJauLsulRIiUJM0KvgFirtdF1k+VkZ8zxXkAE0DyJaY+4XwKx+mXKC9jvjvf+Sbez/yFUZigs/vPW6SqEWgemsjVl97Dk02mdrYxc0YV6fWH/7otPZ/p0BIJsWdDK/UdVXbSyy7myGxsINM+LlgflN322dmSJOUGCtWbwIDAQAB

 

RSA解密后的密文:11112222#821f3157e1a3456bfe1a000a1adf0862

 

RSA根據私鑰進行解密的代碼截圖:

 

 

 

 

 

第三層:#分割{明文#md5(明文)} ,采用md5加密明文,與前端md5(明文)數據進行對比,根據對比結果,給出相應的提示,

 

后端解密總體流程圖:

 

 

 

 

本文只是給出了解決方法,具體解決代碼自行百度。

  

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM