欧美三区_成人在线免费观看视频_欧美极品少妇xxxxⅹ免费视频_a级毛片免费播放_鲁一鲁中文字幕久久_亚洲一级特黄

python實(shí)現(xiàn)加密的方式總結(jié)

系統(tǒng) 1867 0

python實(shí)現(xiàn)加密的方式總結(jié)

?

?

?

原文地址

目錄

基礎(chǔ)知識掃盲

Base64

MD5

DES

3DES

AES

RSA

基礎(chǔ)知識掃盲

對稱加密
對稱密鑰加密 , 又叫私鑰加密。即信息發(fā)送的方和接受方用一個密鑰去加密和揭秘?cái)?shù)據(jù)。 最大的優(yōu)勢是 加解密速度快,適合對大量數(shù)據(jù)進(jìn)行加密, 對稱加密的缺點(diǎn)是密鑰的管理和分配, 換句話說就是 如何把密鑰發(fā)送到需要解密你的消息的人手里的問題。在發(fā)送密鑰的過程中, 密鑰有很大的風(fēng)險(xiǎn)被黑客攔截。 現(xiàn)實(shí)中的做法是將對稱加密的密鑰進(jìn)行非對稱加密然后傳給需要他的人。
非對稱加密
非對稱加密系統(tǒng), 又稱公鑰密鑰加密。 非對稱加密為數(shù)據(jù)的加密與解密提供了一種非常安全的方式。她使用了一對密鑰, 私鑰和公鑰。 私鑰只能有一方安全保管, 不能外泄, 而公鑰可以發(fā)給任何請求她的人。非對稱加密使用這對密鑰中的一個進(jìn)行加密, 而解密卻需要一個另外一個密鑰。 比如你去銀行 你向銀行請求公鑰,銀行將公鑰發(fā)給你,你使用公鑰對消息加密,那么只有私鑰的持有人–銀行才能對你的消息解密。 與對稱加密的不同之處是, 銀行不需要將私鑰通過網(wǎng)絡(luò)發(fā)送出去。因此安全性大大提高。 目前最常用的非對稱加密算法是RSA算法。公鑰機(jī)制靈活,但加密和解密速度卻比對稱密鑰加密慢得多。 公鑰機(jī)制靈活, 但是加密和解密速度卻要比堆成加密慢很多。
1) Alice需要在銀行的網(wǎng)站做一筆交易,她的瀏覽器首先生成了一個隨機(jī)數(shù)作為對稱密鑰。
(2) Alice的瀏覽器向銀行的網(wǎng)站請求公鑰。
(3) 銀行將公鑰發(fā)送給Alice。
(4) Alice的瀏覽器使用銀行的公鑰將自己的對稱密鑰加密。
(5) Alice的瀏覽器將加密后的對稱密鑰發(fā)送給銀行。
(6) 銀行使用私鑰解密得到Alice瀏覽器的對稱密鑰。
(7) Alice與銀行可以使用對稱密鑰來對溝通的內(nèi)容進(jìn)行加密與解密了。

總結(jié)
(1) 對稱加密加密與解密使用的是同樣的密鑰,所以速度快,但由于需要將密鑰在網(wǎng)絡(luò)傳輸,所以安全性不高。
(2) 非對稱加密使用了一對密鑰,公鑰與私鑰,所以安全性高,但加密與解密速度慢。
(3) 解決的辦法是將對稱加密的密鑰使用非對稱加密的公鑰進(jìn)行加密,然后發(fā)送出去,接收方使用私鑰進(jìn)行解密得到對稱加密的密鑰,然后雙方可以使用對稱加密來進(jìn)行溝通。

python中加密的注意點(diǎn)

我們所說的加密方式,都是對二進(jìn)制編碼的格式進(jìn)行加密的,對應(yīng)到Python中,則是我們的 Bytes

所以當(dāng)我們在Python中進(jìn)行加密操作的時(shí)候,要確保我們操作的是 Bytes ,否則就會報(bào)錯。

將字符串和 Bytes 互相轉(zhuǎn)換可以使用 encode() decode() 方法。

請查看這篇文章

?

?

Base64

Base64是一種用64個字符來表示任意二進(jìn)制數(shù)據(jù)的方法。

Base64編碼可以稱為密碼學(xué)的基石。可以將任意的二進(jìn)制數(shù)據(jù)進(jìn)行Base64編碼。所有的數(shù)據(jù)都能被編碼為并只用65個字符就能表示的文本文件。( 65字符:A~Z a~z 0~9 + / = )編碼后的數(shù)據(jù)~=編碼前數(shù)據(jù)的4/3,會大1/3左右。

原理

              1.將所有字符轉(zhuǎn)化為ASCII碼。
2.將ASCII碼轉(zhuǎn)化為8位二進(jìn)制 。
3.將二進(jìn)制3個歸成一組(不足3個在后邊補(bǔ)0)共24位,再拆分成4組,每組6位。
4.統(tǒng)一在6位二進(jìn)制前補(bǔ)兩個0湊足8位。
5.將補(bǔ)0后的二進(jìn)制轉(zhuǎn)為十進(jìn)制。
6.從Base64編碼表獲取十進(jìn)制對應(yīng)的Base64編碼。

            

說明

  1. 轉(zhuǎn)換的時(shí)候,將三個byte的數(shù)據(jù),先后放入一個24bit的緩沖區(qū)中,先來的byte占高位。
  2. 數(shù)據(jù)不足3byte的話,于緩沖區(qū)中剩下的bit用0補(bǔ)足。然后,每次取出6個bit,按照其值選擇查表選擇對應(yīng)的字符作為編碼后的輸出。
  3. 不斷進(jìn)行,直到全部輸入數(shù)據(jù)轉(zhuǎn)換完成。
  4. 如果最后剩下兩個輸入數(shù)據(jù),在編碼結(jié)果后加1個“=”。
  5. 如果最后剩下一個輸入數(shù)據(jù),編碼結(jié)果后加2個“=”。
  6. 如果沒有剩下任何數(shù)據(jù),就什么都不要加,這樣才可以保證資料還原的正確性。

Base64加密與解密

              
                注意:

              
              1
              
                .用于base64編碼的,要么是ASCII包含的字符,要么是二進(jìn)制數(shù)據(jù) 

              
              2.base64 是對稱加密
            
              
                import
              
              
                 base64

s 
              
              = 
              
                '
              
              
                hello, world
              
              
                '
              
              
                
s 
              
              = 
              
                "
              
              
                你好
              
              
                "
              
              
                #
              
              
                 加密
              
              
bs = base64.b64encode(s.encode(
              
                "
              
              
                utf8
              
              
                "
              
              
                ))

              
              
                print
              
              
                (bs)


              
              
                #
              
              
                 解密
              
              
decode =
              
                 base64.b64decode(bs)

              
              
                print
              
              
                (decode)

              
              
                print
              
              (decode.decode(
              
                "
              
              
                utf8
              
              
                "
              
              ))
            

?

?

MD5

message-digest algorithm 5(信息-摘要算法)。經(jīng)常說的“MD5加密”,就是信息摘要算法。

md5,其實(shí)就是一種算法。可以將一個字符串,或文件,或壓縮包,執(zhí)行md5后,就可以生成一個固定長度為128bit的串。這個串,基本上是唯一的。

說明

  1. 壓縮性:任意長度的數(shù)據(jù),算出的MD5值長度都是固定的。
  2. 容易計(jì)算:從原數(shù)據(jù)計(jì)算出MD5值很容易。
  3. 抗修改性:對原數(shù)據(jù)進(jìn)行任何改動,哪怕只修改1個字節(jié),所得到的MD5值都有很大區(qū)別。
  4. 強(qiáng)抗碰撞:已知原數(shù)據(jù)和其MD5值,想找到一個具有相同MD5值的數(shù)據(jù)(即偽造數(shù)據(jù))是非常困難的。
  5. 不可逆性:每個人都有不同的指紋,看到這個人,可以得出他的指紋等信息,并且唯一對應(yīng),但你只看一個指紋,是不可能看到或讀到這個人的長相或身份等信息。

MD5加密與解密

由于MD5模塊在python3中被移除,在python3中使用 hashlib 模塊進(jìn)行md5操作

            
              import
            
            
               hashlib


            
            
              #
            
            
               待加密信息
            
            
str = 
            
              '
            
            
              這是一個測試
            
            
              '
            
            
              #
            
            
               創(chuàng)建md5對象
            
            
hl =
            
               hashlib.md5()


            
            
              #
            
            
               此處必須聲明encode
            
            
              
#
            
            
               若寫法為hl.update(str)  報(bào)錯為: Unicode-objects must be encoded before hashing
            
            
hl.update(str.encode(encoding=
            
              '
            
            
              utf-8
            
            
              '
            
            
              ))


            
            
              print
            
            (
            
              '
            
            
              MD5加密前為 :
            
            
              '
            
             +
            
               str)

            
            
              print
            
            (
            
              '
            
            
              MD5加密后為 :
            
            
              '
            
             + hl.hexdigest())
          

輸出結(jié)果

            
              MD5加密前為 :這是一個測試
MD5加密后為 :cfca700b9e09cf664f3ae80733274d9f
            
          

md5的長度,默認(rèn)為128bit,也就是128個0和1的二進(jìn)制串。這樣表達(dá)是很不友好的。所以將二進(jìn)制轉(zhuǎn)成了16進(jìn)制,每4個bit表示一個16進(jìn)制,所以128/4 = 32 換成16進(jìn)制表示后,為32位了。

為什么網(wǎng)上還有md5是16位的呢?

其實(shí)16位的長度,是從32位md5值來的。是將32位md5去掉前八位,去掉后八位得到的。

?

DES

介紹PyCrypto

            
              PyCrypto是 Python 中密碼學(xué)方面最有名的第三方軟件包,提供了許多加密算法的使用。可惜的是,它的開發(fā)工作于2012年就已停止。

幸運(yùn)的是,有一個該項(xiàng)目的分支PyCrytodome 取代了 PyCrypto 。
            
          

安裝與導(dǎo)入

安裝之前需要先安裝 Microsoft Visual c++ 2015

在Linux上安裝,可以使用以下 pip 命令:

              
                pip install pycryptodome

              
            

導(dǎo)入:

              
                
                  import Crypto

                
              
            

在Windows 系統(tǒng)上安裝則稍有不同:

              
                pip install pycryptodomex

              
            

導(dǎo)入:

              
                
                  import Cryptodome
                  

DES介紹

              
                DES算法為密碼體制中的對稱密碼體制,又被稱為美國數(shù)據(jù)加密標(biāo)準(zhǔn)。
DES是一個分組加密算法,典型的DES以64位為分組對數(shù)據(jù)加密,加密和解密用的是同一個算法。
DES算法的入口參數(shù)有三個:Key、Data、Mode。其中Key為7個字節(jié)共56位,是DES算法的工作密鑰;Data為8個字節(jié)64位,是要被加密或被解密的數(shù)據(jù);Mode為DES的工作方式,有兩種:加密或解密。
密鑰長64位,密鑰事實(shí)上是56位參與DES運(yùn)算(第8、
              
              16、24、32、40、48、56、64位是校驗(yàn)位,使得每個密鑰都有奇數(shù)個1),分組后的明文組和56位的密鑰按位替代或交換的方法形成密文組。
            

加密原理
DES 使用一個 56 位的密鑰以及附加的 8 位奇偶校驗(yàn)位,產(chǎn)生最大 64 位的分組大小。這是一個迭代的分組密碼,使用稱為 Feistel 的技術(shù),其中將加密的文本塊分成兩半。使用子密鑰對其中一半應(yīng)用循環(huán)功能,然后將輸出與另一半進(jìn)行“異或”運(yùn)算;接著交換這兩半,這一過程會繼續(xù)下去,但最后一個循環(huán)不交換。DES 使用 16 個循環(huán),使用異或,置換,代換,移位操作四種基本運(yùn)算。

算法步驟
1)初始置換
其功能是把輸入的64位數(shù)據(jù)塊按位重新組合,并把輸出分為L0、R0兩部分,每部分各長3 2位,其置換規(guī)則為將輸入的第58位換到第一位,第50位換到第2位……依此類推,最后一位是原來的第7位。L0、R0則是換位輸出后的兩部分,L0是輸出的左32位,R0是右32位,例:設(shè)置換前的輸入值為D1D2D3……D64,則經(jīng)過初始置換后的結(jié)果為:L0=D58D50……D8;R0=D57D49……D7。
其置換規(guī)則見下表:
58,50,42,34,26,18,10,2,60,52,44,36,28,20,12,4,
62,54,46,38,30,22,14,6,64,56,48,40,32,24,16,8,
57,49,41,33,25,17,9,1,59,51,43,35,27,19,11,3,
61,53,45,37,29,21,13,5,63,55,47,39,31,23,15,7,
2)逆置換
經(jīng)過16次迭代運(yùn)算后,得到L16、R16,將此作為輸入,進(jìn)行逆置換,逆置換正好是初始置換的逆運(yùn)算,由此即得到密文輸出。
此算法是對稱加密算法體系中的代表,在計(jì)算機(jī)網(wǎng)絡(luò)系統(tǒng)中廣泛使用.

?

DES加密與解密
              
                #
              
              
                 導(dǎo)入DES模塊
              
              
                from
              
               Cryptodome.Cipher 
              
                import
              
              
                 DES

              
              
                import
              
              
                 binascii


              
              
                #
              
              
                 這是密鑰
              
              
key = b
              
                '
              
              
                abcdefgh
              
              
                '
              
              
                #
              
              
                 需要去生成一個DES對象
              
              
des =
              
                 DES.new(key, DES.MODE_ECB)

              
              
                #
              
              
                 需要加密的數(shù)據(jù)
              
              
text = 
              
                '
              
              
                python spider!
              
              
                '
              
              
                
text 
              
              = text + (8 - (len(text) % 8)) * 
              
                '
              
              
                =
              
              
                '
              
              
                #
              
              
                 加密的過程
              
              
encrypto_text =
              
                 des.encrypt(text.encode())
encrypto_text 
              
              =
              
                 binascii.b2a_hex(encrypto_text)

              
              
                print
              
              (encrypto_text)
            

?

3DES

3DES(或稱為Triple DES)是三重?cái)?shù)據(jù)加密算法(TDEA,Triple Data Encryption Algorithm)塊密碼的通稱。它相當(dāng)于是對每個數(shù)據(jù)塊應(yīng)用三次DES加密算法。

由于計(jì)算機(jī)運(yùn)算能力的增強(qiáng),原版DES密碼的密鑰長度變得容易被暴力破解。3DES即是設(shè)計(jì)用來提供一種相對簡單的方法,即通過增加DES的密鑰長度來避免類似的攻擊,而不是設(shè)計(jì)一種全新的塊密碼算法。

3DES(即Triple DES)是DES向AES過渡的加密算法(1999年,NIST將3-DES指定為過渡的加密標(biāo)準(zhǔn)),加密算法,其具體實(shí)現(xiàn)如下:設(shè)Ek()和Dk()代表DES算法的加密和解密過程,K代表DES算法使用的密鑰,M代表明文,C代表密文,這樣:

3DES加密過程為:C=Ek3(Dk2(Ek1(M)))

3DES解密過程為:M=Dk1(EK2(Dk3(C)))

?
?

AES

高級加密標(biāo)準(zhǔn) (英語: Advanced Encryption Standard ,縮寫: AES ),在密碼學(xué)中又稱 Rijndael加密法 ,是美國聯(lián)邦政府采用的一種區(qū)塊加密標(biāo)準(zhǔn)。這個標(biāo)準(zhǔn)用來替代原先的DES,已經(jīng)被多方分析且廣為全世界所使用。經(jīng)過五年的甄選流程,高級加密標(biāo)準(zhǔn)由美國國家標(biāo)準(zhǔn)與技術(shù)研究院(NIST)于2001年11月26日發(fā)布于FIPS PUB 197,并在2002年5月26日成為有效的標(biāo)準(zhǔn)。2006年,高級加密標(biāo)準(zhǔn)已然成為對稱密鑰加密中最流行的算法之一。

AES在軟件及硬件上都能快速地加解密,相對來說較易于實(shí)作,且只需要很少的存儲器。作為一個新的加密標(biāo)準(zhǔn),目前正被部署應(yīng)用到更廣大的范圍。

特點(diǎn)

  1. 抵抗所有已知的攻擊。
  2. 在多個平臺上速度快,編碼緊湊。
  3. 設(shè)計(jì)簡單。

AES實(shí)現(xiàn)原理

AES加密與解碼

AES為分組密碼,分組密碼也就是把明文分成一組一組的,每組長度相等,每次加密一組數(shù)據(jù),直到加密完整個明文。在AES標(biāo)準(zhǔn)規(guī)范中,分組長度只能是128位,也就是說,每個分組為16個字節(jié)(每個字節(jié)8位)。密鑰的長度可以使用128位、192位或256位。密鑰的長度不同,推薦加密輪數(shù)也不同。

一般常用的是128位

              
                from
              
               Cryptodome.Cipher 
              
                import
              
              
                 AES

              
              
                from
              
               Cryptodome 
              
                import
              
              
                 Random


              
              
                from
              
               binascii 
              
                import
              
              
                 a2b_hex


              
              
                #
              
              
                 要加密的明文
              
              
data = 
              
                '
              
              
                南來北往
              
              
                '
              
              
                #
              
              
                 密鑰key必須為 16(AES-128), 24(AES-192), 32(AES-256)
              
              
key = b
              
                '
              
              
                this is a 16 key
              
              
                '
              
              
                #
              
              
                 生成長度等于AES 塊大小的不可重復(fù)的密鑰向量
              
              
iv =
              
                 Random.new().read(AES.block_size)

              
              
                print
              
              
                (iv)

              
              
                #
              
              
                 使用 key 和iv 初始化AES 對象, 使用MODE_CFB模式
              
              
mycipher =
              
                 AES.new(key, AES.MODE_CFB, iv)

              
              
                print
              
              
                (mycipher)

              
              
                #
              
              
                 加密的明文長度必須為16的倍數(shù), 如果長度不為16的倍數(shù), 則需要補(bǔ)足為16的倍數(shù)
              
              
                
#
              
              
                 將iv(密鑰向量)加到加密的密鑰開頭, 一起傳輸
              
              
ciptext = iv +
              
                 mycipher.encrypt(data.encode())

              
              
                #
              
              
                 解密的話需要用key 和iv 生成的AES對象
              
              
                print
              
              
                (ciptext)
mydecrypt 
              
              = AES.new(key, AES.MODE_CFB, ciptext[:16
              
                ])

              
              
                #
              
              
                 使用新生成的AES 對象, 將加密的密鑰解密
              
              
decrytext = mydecrypt.decrypt(ciptext[16
              
                :])


              
              
                print
              
              (decrytext.decode())
            

?

?

RSA

RSA加密算法 是一種 非對稱加密算法 。在公開密鑰加密和電子商業(yè)中RSA被廣泛使用。

該算法基于一個十分簡單的數(shù)論事實(shí):將兩個大素?cái)?shù)相乘十分容易,但那時(shí)想要對其乘積進(jìn)行因式分解卻極其困難,因此可以將乘積公開作為加密密鑰,即公鑰,而兩個大素?cái)?shù)組合成私鑰。公鑰是可發(fā)布的供任何人使用,私鑰則為自己所有,供解密之用。

非對稱加密

典型的如RSA等,常見方法,使用openssl ,keytools等工具生成一對公私鑰對,使用被公鑰加密的數(shù)據(jù)可以使用私鑰來解密,反之亦然(被私鑰加密的數(shù)據(jù)也可以被公鑰解密) 。

在實(shí)際使用中私鑰一般保存在發(fā)布者手中,是私有的不對外公開的,只將公鑰對外公布,就能實(shí)現(xiàn)只有私鑰的持有者才能將數(shù)據(jù)解密的方法。 這種加密方式安全系數(shù)很高,因?yàn)樗挥脤⒔饷艿拿荑€進(jìn)行傳遞,從而沒有密鑰在傳遞過程中被截獲的風(fēng)險(xiǎn),而破解密文幾乎又是不可能的。

但是算法的效率低,所以常用于很重要數(shù)據(jù)的加密,常和對稱配合使用,使用非對稱加密的密鑰去加密對稱加密的密鑰。

RSA加密與解密

首先我們需要安裝一個 rsa 模塊:

              pip install rsa
            

而且,因?yàn)镽SA加密算法的特性,RSA的公鑰私鑰都是10進(jìn)制的,但公鑰的值常常保存為16進(jìn)制的格式,所以需要將其用 int() 方法轉(zhuǎn)換為10進(jìn)制格式。

              
                import
              
              
                 rsa

              
              
                import
              
              
                 binascii


              
              
                #
              
              
                 使用網(wǎng)頁中獲得的n和e值,將明文加密
              
              
                def
              
              
                 rsa_encrypt(rsa_n, rsa_e, message):
    
              
              
                #
              
              
                 用n值和e值生成公鑰
              
              
    key =
              
                 rsa.PublicKey(rsa_n, rsa_e)
    
              
              
                #
              
              
                 用公鑰把明文加密
              
              
    message =
              
                 rsa.encrypt(message.encode(), key)
    
              
              
                #
              
              
                 轉(zhuǎn)化成常用的可讀性高的十六進(jìn)制
              
              
    message =
              
                 binascii.b2a_hex(message)
    
              
              
                #
              
              
                 將加密結(jié)果轉(zhuǎn)化回字符串并返回
              
              
                return
              
              
                 message.decode()


              
              
                #
              
              
                 RSA的公鑰有兩個值n和e,我們在網(wǎng)站中獲得的公鑰一般就是這樣的兩個值。
              
              
                
#
              
              
                 n常常為長度為256的十六進(jìn)制字符串
              
              
                
#
              
              
                 e常常為十六進(jìn)制‘10001’
              
              
pubkey_n = 
              
                '
              
              
                8d7e6949d411ce14d7d233d7160f5b2cc753930caba4d5ad24f923a505253b9c39b09a059732250e56c594d735077cfcb0c3508e9f544f101bdf7e97fe1b0d97f273468264b8b24caaa2a90cd9708a417c51cf8ba35444d37c514a0490441a773ccb121034f29748763c6c4f76eb0303559c57071fd89234d140c8bb965f9725
              
              
                '
              
              
                
pubkey_e 
              
              = 
              
                '
              
              
                10001
              
              
                '
              
              
                #
              
              
                 需要將十六進(jìn)制轉(zhuǎn)換成十進(jìn)制
              
              
rsa_n = int(pubkey_n, 16
              
                )
rsa_e 
              
              = int(pubkey_e, 16
              
                )

              
              
                #
              
              
                 要加密的明文
              
              
message = 
              
                '
              
              
                南北今天很忙
              
              
                '
              
              
                print
              
              (
              
                "
              
              
                公鑰n值長度:
              
              
                "
              
              
                , len(pubkey_n))

              
              
                print
              
              (rsa_encrypt(rsa_n, rsa_e, message))
            

運(yùn)行結(jié)果:

              公鑰n值長度: 256
              
                
480f302eed822c8250256511ddeb017fcb28949cc05739ae66440eecc4ab76e7a7b2f1df398aefdfef2b9bfce6d6152bf6cc1552a0ed8bebee9e094a7ce9a52622487a6412632144787aa81f6ec9b96be95890c4c28a31b3e8d9ea430080d79297c5d75cd11df04df6e71b237511164399d72ccb2f4c34022b1ea7b76189a56e
              
            

?

?

?

?


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯(lián)系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長非常感激您!手機(jī)微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發(fā)表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: va在线播放 | 精品久久一区二区三区 | 王的女人印度剧电视剧免费观看32集 | 亚洲人成网站在线播放观看 | 99精品免费久久久久久久久日本 | 欧美亚洲一区二区三区 | 日韩欧美中文在线 | 亚洲视频在线一区 | 美女国内精品自产拍在线播放 | 午夜午夜精品一区二区三区文 | xxxxhd73国产 | www.日韩av.com | 久久久久久91香蕉国产 | 国产高清在线视频 | 日韩福利视频导航 | 成人免费看片视频 | 日韩精品一区二区三区中文字幕 | 99久久久无码国产精品 | 91 视频网站 | 国产精品毛片大码女人 | 欧美成人伊人十综合色 | 青青青国产依人精品视频 | 国产精品高清在线 | 国产免费一区二区三区免费视频 | 黄色av毛片| 国产精品日韩在线观看 | 日韩婷婷 | 五月色播影音在线观看 | 国产精品视频网站 | 看免费的毛片 | 久久国产精品免费网站 | 国产中文字幕在线播放 | 九九爱这里只有精品 | 一区二区国产在线观看 | 亚洲蜜桃AV色情精品成人 | 奇米第四色网站 | 一区二区三区欧美精品 | 国产精品免费看久久久 | 日本在线视频一区二区 | 色婷五月天 | 99久久精品国产免看国产一区 |