常見的滲透測試會將網(wǎng)站登錄時(shí)密碼使用明文傳輸視為風(fēng)險(xiǎn)。推薦使用國密算法或者RSA算法對密碼進(jìn)行加密傳輸。
RSA加密(JS加密,C#、Java解密)請參考《RSA對稱加密(JS加密,C#、Java解密)》??????
本文描述國密SM2算法的實(shí)現(xiàn)。
一、工作原理
前端js使用公鑰進(jìn)行加密,后端使用私鑰進(jìn)行解密(后端可以是C#或java語言)。
二、實(shí)現(xiàn)步驟
為了方便驗(yàn)證加密、解密結(jié)果,本文以一組固定的公鑰和私鑰進(jìn)行演示(公鑰和私鑰后文有描述如何產(chǎn)生)。
公鑰:04F59485B23304990ED45E42521BE504D0DE358B9E4031A172EF48700071AF985A8EA8B12BB479E24152814EE61840932BFFF5B3B1657C9CF50A61756B1D901E1C
私鑰:
78AEBAE7DE025B6954357DB327F4AE412B3657B1E1ED36F89927C065155DBA9A
(一)JS前端加密
直接看demo吧,代碼參考網(wǎng)頁源代碼。
?在線演示地址?每次加密結(jié)果都不一樣。
(二)Java?SM2加解密
我這里使用的是VScode調(diào)試Java代碼。整個(gè)程序結(jié)構(gòu)大概像這樣:
注意:Java加解密使用的是?bcprov-jdk16-1.46.jar 這個(gè)版本的包。
(完整代碼見文末下載鏈接)
(三)C# SM2加解密
寫了個(gè)調(diào)試工具,大概長這樣:
注意:C#加解密使用的是?BouncyCastle.Crypto.dll,版本為:1.9.0.1,不同版本加密代碼不一樣,折騰這個(gè)問題折騰了挺久。
完整代碼下載:
https://download.csdn.net/download/a497785609/87459516
備用下載地址:
https://qingshanboke.com/uploadfiles/demo/sm2.rar
GitHub地址:
https://github.com/zhangqs008/SM2?文章來源:http://www.zghlxwxcb.cn/news/detail-434055.html
文章來源地址http://www.zghlxwxcb.cn/news/detail-434055.html
到了這里,關(guān)于國密SM2算法(JS加密,C#、Java解密)的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!