中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當(dāng)前位置: 首頁(yè) > news >正文

杭州網(wǎng)站建設(shè)V芯ee8888e保定seo建站

杭州網(wǎng)站建設(shè)V芯ee8888e,保定seo建站,如何做網(wǎng)站連接,品牌網(wǎng)絡(luò)圖看視頻講的更詳細(xì):https://www.bilibili.com/video/BV1zr4y1E7V5/? 一、對(duì)稱加密 對(duì)稱加密算法是共享密鑰加密算法,在加密解密過(guò)程中,使用的密鑰只有一個(gè)。發(fā)送和接收雙方事先都知道加密的密鑰,均使用這個(gè)密鑰對(duì)數(shù)據(jù)進(jìn)行加密和解…

看視頻講的更詳細(xì):https://www.bilibili.com/video/BV1zr4y1E7V5/?

一、對(duì)稱加密

對(duì)稱加密算法是共享密鑰加密算法,在加密解密過(guò)程中,使用的密鑰只有一個(gè)。發(fā)送和接收雙方事先都知道加密的密鑰,均使用這個(gè)密鑰對(duì)數(shù)據(jù)進(jìn)行加密和解密。

數(shù)據(jù)加密:在對(duì)稱加密算法中,數(shù)據(jù)發(fā)送方將明文 (原始數(shù)據(jù)) 和 加密密鑰一起經(jīng)過(guò)加密處理,生成復(fù)雜的密文進(jìn)行發(fā)送。

數(shù)據(jù)解密:數(shù)據(jù)接收方收到密文后,使用加密的密鑰及相同算法的逆算法對(duì)加密的密文進(jìn)行解密,將使其恢復(fù)成可讀明文。

二、非對(duì)稱加密

非對(duì)稱加密算法,有兩個(gè)密鑰,一個(gè)稱為公開密鑰 (publickey),另一個(gè)稱為 私有密鑰 (private key),加密和解密使用的是兩個(gè)不同的密鑰,所以這種算法稱為非對(duì)稱加密算法。

如果使用公鑰對(duì)數(shù)據(jù)進(jìn)行加密,只有用對(duì)應(yīng)的私鑰才能進(jìn)行解密。

如果使用私鑰對(duì)數(shù)據(jù)進(jìn)行加密,只有用對(duì)應(yīng)的公鑰才能進(jìn)行解密。

三、常見加密處理方式

根據(jù)上述常見的加密算法,測(cè)試人員在測(cè)試不同的加密接口可采用下述的方法處理加密接口

摘要算法(MD5.SHA1 ):造接口數(shù)據(jù)前調(diào)用MD5,SHA1進(jìn)行編碼,服務(wù)端對(duì)比編碼后的字符串是否一致

對(duì)稱加密算法(AES,DES ):造接口數(shù)據(jù)前從開發(fā)獲取對(duì)稱公鑰,基于對(duì)稱公鑰可以加密請(qǐng)求數(shù)據(jù),解密響應(yīng)報(bào)文

非對(duì)稱加密算法(RSA):造接口數(shù)據(jù)前從開發(fā)獲取公鑰私鑰去加密解密接口數(shù)據(jù)

用戶認(rèn)證:一般的接口測(cè)試工具都會(huì)提供一個(gè)User Auth/Authorization的選項(xiàng)

1、OAuth 2.0認(rèn)證

在對(duì)應(yīng)的工具上,你可以選取對(duì)應(yīng)的用戶認(rèn)證選項(xiàng),如果用Python如何實(shí)現(xiàn)用戶認(rèn)證。

  • 首先安裝Requests庫(kù),Requests庫(kù)的get()和post()方法均提供有auth參數(shù),用于設(shè)置用戶簽名。
  • 假定我們有一個(gè)接口為添加一個(gè)新的公告,接口需要認(rèn)證:auth=("username","password"),nid 或 name兩個(gè)參數(shù)二選一
  • 偽代碼:

highlighter- ruby

def test_get_notice_list_nid_sucess(self):auth_user = ('admin' , 'admin123456')r = requests.get(self.base_url, auth = auth_user, params = {'nid' : 1})result = r.json()self.assertEqual(result['status'], 200)

2、數(shù)字簽名

在使用 HTTP/SOAP 協(xié)議傳輸數(shù)據(jù)的時(shí)候,簽名作為其中一個(gè)參數(shù),可以起到關(guān)鍵作用:

先來(lái)一個(gè)簡(jiǎn)單的,通過(guò)客戶的密鑰,服務(wù)端的密鑰匹配;

這個(gè)很有好理解,例如一個(gè)接口傳參為:

highlighter- awk

http://127.0.0.1:8000/api/?a=1&b=2

假設(shè)簽名的密鑰為:@signpassword

加上簽名之后的接口參數(shù)為:

highlighter- awk

http://127.0.0.1:8000/sign/?a=1&b=2&sign=@signpassword

但是,這樣的sign 參數(shù)明文傳輸是不安全的,一般會(huì)選擇一些加密算法,比如MD5 算法(MD5算法是不可逆向的),比如MD5代碼如下:

highlighter- stylus

import hashlib  
md5 = hashlib.md5()
sign_str = "@signpassword"
sign_bytes_utf8 = sign_str.encode()
md5.update(sign_bytes_utf8)
sign_md5 = md5.hexdigest()
print(sign_md5)

執(zhí)行后得到:6648e929329e53e7a91c50ae685a88b5

此時(shí)帶簽名的接口為:

highlighter- apache

http://127.0.0.1:8000/sign/?a=1&b=2&sign=6648e929329e53e7a91c50ae685a88b5

所以,當(dāng)服務(wù)器接收到請(qǐng)求后,同樣需要對(duì)“signpassword”進(jìn)行 MD5 加密,然后,比對(duì)與調(diào)用者傳來(lái)的 sign 加密串是否一致,從而來(lái)鑒別調(diào)用者是否有權(quán)限使用該接口。

接著,我們來(lái)理解一個(gè)復(fù)雜一點(diǎn)的:把sign參數(shù)傳遞為api key(申請(qǐng)獲取)+ timestramp(時(shí)間戳)同樣需要用代碼來(lái)實(shí)現(xiàn),原理和上面這個(gè)一致的。(偽代碼)

highlighter- ruby

def setUp(self):   self.base_url = "http://127.0.0.1:8000/api/sec_add_notice/"# app_keyself.api_key = "&APIkey"# 當(dāng)前時(shí)間now_time = time()self.client_time = str(now_time).split('.')[0]# signmd5 = hashlib.md5()sign_str = self.client_time + self.api_keysign_bytes_utf8 = sign_str.encode(encoding="utf-8")md5.update(sign_bytes_utf8)self.sign_md5 = md5.hexdigest()

3、AES加解密的過(guò)程

通常接口會(huì)使用更復(fù)雜一點(diǎn)的方式來(lái)進(jìn)行加密的操作,常見的是AES的使用,放一張圖讓大家感受一下AES加解密的過(guò)程:

Python里面有一個(gè)很好的黑魔法,叫PyCrypto庫(kù),支持常見的 DES、AES 加密以及 MD5、SHA 各種 HASH 運(yùn)算。

官方網(wǎng)站下載最新版本:

highlighter- awk

https://www.dlitz.net/software/pycrypto/

另外,也可以在 PyPi 倉(cāng)庫(kù)中下載安裝:

highlighter- awk

https://pypi.python.org/pypi/pycrypto

對(duì)于AES的加密來(lái)說(shuō),看一下用了PyCrypto庫(kù)的結(jié)果

加密:

highlighter- stylus

from Crypto.Cipher import AES
obj = AES.new('This is a key123', AES.MODE_CBC, 'This is an IV456')
message = "The answer is no"
ciphertext = obj.encrypt(message)
print(ciphertext)

程序運(yùn)行后的結(jié)果為:

highlighter- taggerscript

b'\xd6\x83\x8dd!VT\x92\xaa`A\x05\xe0\x9b\x8b\xf1'

AES加密里面有兩個(gè)關(guān)鍵,一個(gè)是key(必須為16,24,32位),一個(gè)是VI(必須為16位)

解密:解謎者必須要同時(shí)知道key和VI才可以解密

highlighter- stylus

obj2 = AES.new('This is a key123', AES.MODE_CBC, 'This is an IV456')
s = obj2.decrypt(ciphertext)
print(s)

由Crypto庫(kù)的作者已停止維護(hù),現(xiàn)推薦安裝:

highlighter- cmake

 pip install pycrytodome

pycryptodome官方文檔:

highlighter- awk

https://www.pycryptodome.org/en/latest/

寫在最后

如果你覺(jué)得文章還不錯(cuò),請(qǐng)大家?點(diǎn)贊、分享、留言?下,因?yàn)檫@將是我持續(xù)輸出更多優(yōu)質(zhì)文章的最強(qiáng)動(dòng)力!

看到這篇文章的人有覺(jué)得我的理解有誤的地方,也歡迎評(píng)論和探討~

你也可以加入下方的的群聊去和同行大神交流切磋

?

http://www.risenshineclean.com/news/33202.html

相關(guān)文章:

  • 如何免費(fèi)自己做個(gè)網(wǎng)站seo入門基礎(chǔ)知識(shí)
  • 電子政務(wù)網(wǎng)站代碼如何讓產(chǎn)品吸引顧客
  • 新聞網(wǎng)站怎樣做seo優(yōu)化淘寶運(yùn)營(yíng)培訓(xùn)班去哪里學(xué)
  • 汅app下載大全2022昭通網(wǎng)站seo
  • 梧州網(wǎng)站建設(shè)服務(wù)商抖音關(guān)鍵詞推廣怎么做
  • 贛icp南昌網(wǎng)站建設(shè)產(chǎn)品推廣軟文
  • 個(gè)體營(yíng)業(yè)執(zhí)照可以做網(wǎng)站嘛微商軟文
  • 房地產(chǎn)怎么做網(wǎng)站推廣子域名網(wǎng)址查詢
  • 網(wǎng)站建設(shè)品牌公司一鍵優(yōu)化免費(fèi)下載
  • 搭建一個(gè)微信小程序要多少錢快速整站優(yōu)化
  • 響水網(wǎng)站建設(shè)公司外貿(mào)網(wǎng)站推廣服務(wù)
  • 中文網(wǎng)站做google廣告怎么樣北京企業(yè)網(wǎng)站推廣哪家公司好
  • 江都網(wǎng)站建設(shè)外鏈平臺(tái)
  • windows系統(tǒng)做ppt下載網(wǎng)站搜索引擎營(yíng)銷的主要模式
  • 網(wǎng)頁(yè)設(shè)計(jì)教程孟憲寧課后題答案seo實(shí)戰(zhàn)培訓(xùn)王乃用
  • 像芥末堆做內(nèi)容的網(wǎng)站百度上怎么發(fā)布作品
  • 用服務(wù)器ip怎么做網(wǎng)站百度官方推廣
  • php網(wǎng)站開發(fā)最新需求商家聯(lián)盟營(yíng)銷方案
  • 網(wǎng)站建設(shè)公司價(jià)seo營(yíng)銷軟件
  • 做網(wǎng)站的成本有多少網(wǎng)絡(luò)媒體軟文案例
  • 幫人做網(wǎng)站賺錢小程序開發(fā)制作
  • 南寧建站軟件小廣告公司如何起步
  • 網(wǎng)站備案信息查詢百度小說(shuō)排行榜2020前十名
  • 怎么做用戶調(diào)研網(wǎng)站軟文
  • 大理網(wǎng)站設(shè)計(jì)如何讓百度收錄網(wǎng)址
  • 河南推廣網(wǎng)站的公司怎樣在網(wǎng)上推廣自己的產(chǎn)品
  • 打開汽車之家網(wǎng)頁(yè)版網(wǎng)絡(luò)seo外包
  • 怎么做素材網(wǎng)站上海最新政策
  • 2016年做網(wǎng)站好不好qq推廣鏈接生成
  • 網(wǎng)站舉報(bào)平臺(tái)12315怎樣制作網(wǎng)頁(yè)設(shè)計(jì)