<strike id="ca4is"><em id="ca4is"></em></strike>
  • <sup id="ca4is"></sup>
    • <s id="ca4is"><em id="ca4is"></em></s>
      <option id="ca4is"><cite id="ca4is"></cite></option>
    • 二維碼
      企資網

      掃一掃關注

      當前位置: 首頁 » 企資快訊 » 問答式 » 正文

      面試官對我說_怎么用Python加密文件?怎么

      放大字體  縮小字體 發布日期:2022-01-20 09:15:26    作者:付夢菲    瀏覽次數:10
      導讀

      文件本質上就是一個字節串,所有加密方法都是圍繞著這些字節串來操作得。今天我們使用得方法嚴格上來說不是加密,但是能夠滿足日常使用了,且原理相對簡單易懂。代碼都給你安排上,再也別說不會啦文感謝件加密加密解

      文件本質上就是一個字節串,所有加密方法都是圍繞著這些字節串來操作得。

      今天我們使用得方法嚴格上來說不是加密,但是能夠滿足日常使用了,且原理相對簡單易懂。

      代碼都給你安排上,再也別說不會啦

      文感謝件加密加密解密思路

      文字是以字符編碼中得編碼數字得二進制數存儲在電腦中得。

      通過給每個字符一個固定得偏移量使原來得字符偏移為其他字符達到加密得效果。

      解密時再依次偏移回來即可。

      # 例如 中 字得unicode是 20013ord('中')

      20013

      # 向后偏移10個字是 '丷'chr(20013+10)

      '丷'
      在當前目錄 abc.txt 文件中有你寫給你暗戀得女生得情書,內容如下:

      我坦白,我交待,我很壞,我無賴,偷過蔡家得梨,摸過李家得菜,不求黨得寬恕,不想zf得寬待,只要你得愛!

      現在使用剛才得思路加密它。

      with open('abc.txt', 'r+', encoding='utf-8') as f: content = f.read() f.seek(0) # 跳轉到文件開始 # 循環每個字 for c in content: f.write(chr(ord(c)+10))

      加密后得內容為:

      戛坰皇6戛亮徏6戛徒坙6戛旪贈6傁近蔫寀皎梲6撂近杘寀皎菦6丗汌兤皎寇恟6丗惽敉度皎寇徏6叴見佪皎爻+

      效果還不錯。

      接下來再解密它

      with open('abc.txt', 'r+', encoding='utf-8') as f: content = f.read() f.seek(0) # 跳轉到文件開始 # 循環每個字 for c in content: f.write(chr(ord(c)-10))

      偏移得值大家可以自行設定。

      代碼

      將上面得加解密封裝為函數如下:

      def text_encrypt(filename): """ 文感謝件加密 :param filename: :return: """ try: f = open(filename, 'r+', encoding='gbk') content = f.read() except UnicodeDecodeError as e: f = open(filename, 'r+', encoding='utf-8') content = f.read() f.seek(0) for c in content: f.write(chr(ord(c)+10)) print('加密文件{}成功!'.format(filename))

      def text_decrypt(filename): """ 文感謝件解密 :param filename: :return: """ try: f = open(filename, 'r+', encoding='gbk') content = f.read() except UnicodeDecodeError as e: f = open(filename, 'r+', encoding='utf-8') content = f.read() f.seek(0) for c in content: f.write(chr(ord(c)-10)) print('解密文件{}成功!'.format(filename))二進制文件加密加密解密思路

      二進制文件往往會比較大,比如視頻等,如果對每個字節進行操作速度較慢,且內存占用也較大。

      二進制文件往往有特殊得編碼,文件有少許字節更改就會破壞編碼。

      所以加密思路為將二進制文件前后相同大小得字節內容進行調換達到破壞源文件形成加密得效果。

      解密時,再還原文件。

      當前目錄下有你得果照一張 gz.jpg,你舍不得刪又怕別人看,使用上面得思路加密一下。

      with open('gz.jpg', 'rb+') as f: # 讀取前10字節 first = f.read(10) # 跳到文件末尾前10字節 f.seek(-10,2) # 讀取結尾得10字節 last = f.read() # 跳到開頭 f.seek(0) # 將末尾得10字節寫到開頭 f.write(last) # 跳到文件末尾前10字節 f.seek(-10,2) # 將前10字節內容替換末尾10字節 f.write(first)

      運行后果然發現打不開了

      728 x 262 1668 x 600

      哪一天你又想欣賞一下自己得美態,再次運行上面得代碼即可以解密。

      代碼

      將上面得加解密封裝為函數如下:

      def bytes_encrypt(filename): with open(filename, 'rb+') as f: first = f.read(10) f.seek(-10, 2) last = f.read() f.seek(0) f.write(last) f.seek(-10, 2) f.write(first)整合

      上面得代碼只能一個文件一個文件得加密,我們整合它們,使用命令行得方式來運行腳本,達到既可以加密單個文件又可以加密多個文件得功能。

      思路

      main 函數流程

      728 x 602 1454 x 1202

      加密解密函數流程

      代碼

      #!/usr/bin/python# -*- coding: UTF-8 -*-# 等Time : 上年/8/21 4:23 下午# 等Author : xinlanimport sysimport osdef is_text(filename): """ 判斷文件是否文感謝件 :param filename: :return: """ suffix = ['txt', 'text', 'py'] if filename.split('.')[-1] in suffix: return True else: return Falsedef text_encrypt(filename): """ 文感謝件加密 :param filename: :return: """ try: f = open(filename, 'r+', encoding='gbk') content = f.read() except UnicodeDecodeError as e: f = open(filename, 'r+', encoding='utf-8') content = f.read() f.seek(0) for c in content: f.write(chr(ord(c) + 10)) print('加密文件{}成功!'.format(filename))def text_decrypt(filename): """ 文感謝件解密 :param filename: :return: """ try: f = open(filename, 'r+', encoding='gbk') content = f.read() except UnicodeDecodeError as e: f = open(filename, 'r+', encoding='utf-8') content = f.read() f.seek(0) for c in content: f.write(chr(ord(c)-10)) print('解密文件{}成功!'.format(filename))def bytes_encrypt(filename): with open(filename, 'rb+') as f: first = f.read(10) f.seek(-10, 2) last = f.read() f.seek(0) f.write(last) f.seek(-10, 2) f.write(first)def encrypt(filename): """ 加密文件 :param filename: :return: """ if is_text(filename): text_encrypt(filename) else: bytes_encrypt(filename) print('加密文件{}成功!'.format(filename))def decrypt(filename): """ 解密文件 :param filename: :return: """ if is_text(filename): text_decrypt(filename) else: bytes_encrypt(filename) print('解密文件{}成功!'.format(filename))def get_file_list(path): for root, dirs, files in os.walk(path): return [os.path.join(root, f) for f in files]def main(): try: _, t, path = sys.argv except Exception as e: exit('請輸入正確得參數') if t == 'e': if os.path.isdir(path): # 加密當前文件夾下所有文件 files = get_file_list(path) for file in files: encrypt(file) else: # 加密文件 encrypt(path) elif t == 'd': # 解密 if os.path.isdir(path): # 解密當前文件加下所有文件 files = get_file_list(path) for file in files: decrypt(file) else: # 解密文件 decrypt(path) else: print('請輸入正確得參數')if __name__ == '__main__': main()

      將上面得代碼保存到 encrypt.py 腳本中,然后通過命令

      python encrypt.py e 文件/文件夾

      加密文件或文件夾中得所有文件。

      通過命令:

      python encrypt.py d 文件/文件夾

      解密文件或文件夾中得所有文件


      文件得加密解密,get到了咩?

       
      (文/付夢菲)
      免責聲明
      本文僅代表作發布者:付夢菲個人觀點,本站未對其內容進行核實,請讀者僅做參考,如若文中涉及有違公德、觸犯法律的內容,一經發現,立即刪除,需自行承擔相應責任。涉及到版權或其他問題,請及時聯系我們刪除處理郵件:weilaitui@qq.com。
       

      Copyright ? 2016 - 2025 - 企資網 48903.COM All Rights Reserved 粵公網安備 44030702000589號

      粵ICP備16078936號

      微信

      關注
      微信

      微信二維碼

      WAP二維碼

      客服

      聯系
      客服

      聯系客服:

      在線QQ: 303377504

      客服電話: 020-82301567

      E_mail郵箱: weilaitui@qq.com

      微信公眾號: weishitui

      客服001 客服002 客服003

      工作時間:

      周一至周五: 09:00 - 18:00

      反饋

      用戶
      反饋

      午夜久久久久久网站,99久久www免费,欧美日本日韩aⅴ在线视频,东京干手机福利视频
        <strike id="ca4is"><em id="ca4is"></em></strike>
      • <sup id="ca4is"></sup>
        • <s id="ca4is"><em id="ca4is"></em></s>
          <option id="ca4is"><cite id="ca4is"></cite></option>
        • 主站蜘蛛池模板: 国产你懂的在线观看| 美国一级毛片免费看| 最好看的2019中文无字幕| 国产精品99无码一区二区| 亚洲国产美女精品久久久久| 99精品国产高清一区二区| 熟妇人妻久久中文字幕| 天堂AV无码AV一区二区三区| 伊人久久精品无码麻豆一区| fc2成年免费共享视频18| 男女抽搐动态图| 在线观看午夜亚洲一区| 亚洲永久精品ww47| 88av免费观看入口在线| 欧美人妖视频网站| 国产真实系列在线| 亚洲av无码一区二区乱孑伦as| 成人草莓视频在线观看| 日本三级s电影| 又大又粗又长视频| www久久精品| 求网址你懂你的2022| 国产精品第100页| 亚欧色视频在线观看免费| 99久久精品费精品国产| 欧美综合自拍亚洲综合图片区| 国产精品永久免费自在线观看| 亚洲乱码一区二区三区在线观看| 黑人video| 欧美成人午夜做受视频| 国产欧美一区二区三区在线看| 久久国产精品偷| 美日韩在线观看| 天天久久综合网站| 亚洲日本va在线观看| 黄网站在线观看| 成人深夜福利在线播放不卡| 免费v片视频在线观看视频| 67pao强力打造国产免费| 日韩黄a级成人毛片| 可播放的免费男男videos不卡|