久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2214|回復: 0
打印 上一主題 下一主題
收起左側

利用python實現混沌加密

[復制鏈接]
跳轉到指定樓層
樓主
ID:1029290 發表于 2022-5-24 16:20 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
以下代碼使用python實現的復合混沌加密一張圖片
  1. import cv2
  2. import math
  3. import numpy as np


  4. def int2bin8(x):                               # 整型轉8位二進制
  5.     result="";
  6.     for i in range(8):
  7.         y=x&(1)
  8.         result+=str(y)
  9.         x=x>>1
  10.     return result[::-1]

  11. def int2bin16(x):                              # 整型轉8位二進制
  12.     result="";
  13.     for i in range(16):
  14.         y=x&(1)
  15.         result+=str(y)
  16.         x=x>>1
  17.     return result

  18. def Encryption(img,j0,g0,x0,EncryptionImg):
  19.     x = img.shape[0]
  20.     y = img.shape[1]
  21.     c = img.shape[2]
  22.     g0 = int2bin16(g0)
  23.     for s in range(x):
  24.         for n in range(y):
  25.             for z in range(c):
  26.                 m = int2bin8(img[s][n][z])                   # 像素值轉八位二進制
  27.                 ans=""
  28.                 print("ok")
  29.                 for i in range(8):
  30.                     ri=int(g0[-1])                           # 取手搖密碼機最后一位ri
  31.                     qi=int(m[i])^ri                          # 與像素值異或得qi
  32.                     xi = 1 - math.sqrt(abs(2 * x0 - 1))      # f1(x)混沌迭代
  33.                     if qi==0:                                # 如果qi=0,則運用x0i+x1i=1;
  34.                         xi=1-xi;
  35.                     x0=xi                                    # xi迭代
  36.                     t=int(g0[0])^int(g0[12])^int(g0[15])     # 本源多項式x^15+x^3+1
  37.                     g0=str(t)+g0[0:-1]                       # gi迭代
  38.                     ci=math.floor(xi*(2**j0))%2              # 非線性轉換算子
  39.                     ans+=str(ci)
  40.                 re=int(ans,2)
  41.                 EncryptionImg[s][n][z]=re                    # 寫入新圖像

  42. def Decryption(EncryptionImg, j0, g0, x0, DecryptionImg):
  43.     x = EncryptionImg.shape[0]
  44.     y = EncryptionImg.shape[1]
  45.     c = EncryptionImg.shape[2]
  46.     g0 = int2bin16(g0)
  47.     for s in range(x):
  48.         for n in range(y):
  49.             for z in range(c):
  50.                 cc = int2bin8(img[s][n][z])
  51.                 ans = ""
  52.                 print("no")
  53.                 for i in range(8):
  54.                     xi = 1 - math.sqrt(abs(2 * x0 - 1))
  55.                     x0 = xi
  56.                     ssi = math.floor(xi * (2 ** j0)) % 2
  57.                     qi=1-(ssi^int(cc[i]))
  58.                     ri = int(g0[-1])
  59.                     mi=ri^qi
  60.                     t = int(g0[0]) ^ int(g0[12]) ^ int(g0[15])
  61.                     g0 = str(t) + g0[0:-1]
  62.                     ans += str(mi)
  63.                 re = int(ans, 2)
  64.                 DecryptionImg[s][n][z] = re


  65. if __name__ == "__main__":
  66.     img = cv2.imread("D:/pycharmproject/network_security/2.bmp", 1)                    # 讀取原始圖像
  67.     cv2.imshow("img", img)                                                             # 顯示原圖

  68.     EncryptionImg = np.zeros(img.shape, np.uint8)
  69.     Encryption(img,10,30,0.123345,EncryptionImg)                                       # 加密
  70.     cv2.imwrite("D:/pycharmproject/network_security/EncryptionImg2.bmp",EncryptionImg)  # 保存
  71.     cv2.imshow("EncryptionImg", EncryptionImg)                                        # 顯示

  72.     img = cv2.imread("D:/pycharmproject/network_security/EncryptionImg2.bmp", 1)        # 讀取加密圖像
  73.     DecryptionImg = np.zeros(img.shape, np.uint8)
  74.     Decryption(img, 10, 30, 0.123345, DecryptionImg)                                   # 解密
  75.     cv2.imwrite("D:/pycharmproject/network_security/DecryptionImg2.bmp", DecryptionImg) # 保存
  76.     cv2.imshow("DecryptionImg ", DecryptionImg)                                        # 顯示

  77.     cv2.waitKey(0)
復制代碼

評分

參與人數 1黑幣 +10 收起 理由
admin + 10 共享資料的黑幣獎勵!

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 日韩欧美在线观看 | 一级午夜aaa免费看三区 | 成人国产一区二区三区精品麻豆 | 久久手机在线视频 | 日本福利一区 | 黄色播放 | 在线欧美一区二区 | 狠狠干夜夜草 | 国产精品一区二区三区在线 | 亚洲成人福利视频 | 午夜精品影院 | 久久久久无码国产精品一区 | 午夜精品 | 精品久久久久久久久久久 | 欧美极品一区二区 | 男女一区二区三区 | 国产精品视频网 | 国产精品久久视频 | 国产99久久精品一区二区300 | 国产三级大片 | 色久五月| 成人在线日韩 | 亚洲福利免费 | 亚洲精品久久久一区二区三区 | 一区二区三区中文字幕 | 一区天堂 | 精品一区在线 | 精品久久久久久亚洲综合网 | 成人伊人网 | 在线一区二区三区 | 四虎影院免费在线 | 国产清纯白嫩初高生视频在线观看 | 亚洲欧洲成人av每日更新 | 国产一区二区视频免费在线观看 | 成在线人视频免费视频 | a黄在线观看 | 久久国产成人 | 成人深夜福利 | 一级片av| 中文字幕欧美在线观看 | 欧美黄色网|