#!/usr/bin/python

#encoding: UTF-8

#################################################################

# script: encode.py

# description: 实现对文件相关加密解密

# version: 0.1 实现对普通文件的加密解密

# usage: python  encode.py [encode | decode] filename [key]

#################################################################

import sys, os, struct

# 加密字符串

def encodeString(str):

key_index = 0

# 定义加密字符串

str_encode = ''

# 字符串转换成字节数组

bytes = bytearray(str)

# 按字节加密

for b in bytes:

b_encode = (b + key_bytes[key_index]) % 256

str_encode += struct.pack('B', b_encode)

key_index = (key_index + 1) % len(key_bytes)

# 返回加密字符串

return str_encode

# 解密字符串

def decodeString(str):

key_index = 0

# 定义解密字符串

str_decode = ''

# 字符串转换成字节数组

bytes = bytearray(str)

for b in bytes:

b_decode = (b + 256 - key_bytes[key_index]) % 256

str_decode += struct.pack('B', b_decode)

key_index = (key_index + 1) % len(key_bytes)

# 返回解密字符串

return str_decode

# 检查命令行参数

if len(sys.argv) < 3 or len(sys.argv) > 4:

print 'Usage: python', sys.argv[0], '[encode | decode] filename [key]'

exit(1)

if sys.argv[1] not in ('encode', 'decode'):

print 'Usage: python', sys.argv[0], '[encode | decode] filename [key]'

exit(1)

# 文件名

filename = sys.argv[2]

if not os.path.isfile(filename):

print 'File "' + filename + '" is not exsisted'

print 'Usage: python', sys.argv[0], '[encode | decode] filename [key]'

exit(1)

# 定义密钥。加密方式:字符串每个字节与密钥对应字节相加后求余

key = 'TESTKEY'

if len(sys.argv) == 4:

key = sys.argv[3]

key_bytes = bytearray(key)

# 加密或解密

mode = sys.argv[1]

# 加密或解密文件

file_mode_name = filename + '.' + mode

# 执行加密或解密

if mode == 'encode':

file = open(filename, 'r')

file_encode = open(file_mode_name, 'w')

str = file.read()

str_encode = encodeString(str)

file_encode.write(str_encode)

file.close()

file_encode.close()

else:

file = open(filename, 'r')

file_decode = open(file_mode_name, 'w')

str = file.read()

str_decode = decodeString(str)

file_decode.write(str_decode)

file.close()

file_decode.close()

print 'Succeed to', mode, 'file "' + filename + '", result file is "' + file_mode_name + '"'

python 加密文件夹_加密文件之Python版相关推荐

  1. python自动整理文件夹_计算机文件和文件夹的Python自动管理,自动化,电脑,及

    目录 一.输出目录所在的文件以及文件夹 import os print(os.getcwd())#获得当前文件的地址 print(os.path.join('MyProjects','AI'))#让P ...

  2. python找不到scripts文件夹_快速解决安装python没有scripts文件夹的问题

    安装Python2.7,好多次都不会产生scripts文件夹,导致无法使用pip. 折腾了一下,找到了解决办法. 让人无法接受的是,只要是我给的安装包一定不会产生scripts文件夹,所以应该是我的安 ...

  3. java代码删除文件夹_删除文件夹的java类

    /** * @author www.nwu.edu.cn MiniRice * @author darkrice@gmail.com * @version    1.2 * */ http://www ...

  4. 大数据之-Hadoop之HDFS的API操作_文件夹_以及文件删除案例---大数据之hadoop工作笔记0059

    然后我们再来看hdfs操作,删除文件夹 就上面这样写就可以了,但是可以看到有第二个参数 上面也有介绍了,源码中写, 如果这个参数设置为true的话,并且要删除的是个文件夹的话,那么 这个时候就不会抛出 ...

  5. mcldownload文件夹_—MCLDownload—文件夹

    本帖最后由 [⊙o⊙] 于 2020-3-28 20:14 编辑 我要正式发干帖了(跟水相反的不是很干嘛) 今天我不会水帖的!!! 今天我们来讲讲MCLDownload文件夹 360截图2020032 ...

  6. centos 删除文件夹_手机文件夹是英文,占空间还不敢乱删?花一分钟读懂手机语言...

    不少人肯定发现,自己的手机里面有一些莫名其妙的文件夹,占据内存空间.且占据很大,想删除,但全部是由英文标注,不知道从何删起. 今天小兰就来帮助大家决绝这么问题,一分钟教你读懂这些手机语言,快速清理手机 ...

  7. 天正lisp文件夹_天正文件布图在哪里

    Q1. 为何图形导出后出现的填充和文字丢失? 一些设计单位在执行"图形导出"(以前叫"另存旧版")命令后,把图形文件复制到其他机器,由天正3或者acad打开,出 ...

  8. 计算机桌面文件能单独设密码吗,电脑上文件夹怎么加密_桌面文件夹怎么加密码...

    在工作中,我们会有些文件是比较重要的,不能给一些无关人员看到,这时我们就可以把文件夹给加密下保护起来,这样就不会被别人看到了,那么怎么对电脑上的文件夹加密呢,方法很简单,下面小编给大家分享电脑桌面文件 ...

  9. java文件加密软件设计_【文件夹加密超级大师和Java软件构架设计模式哪个好用】文件夹加密超级大师和Java软件构架设计模式对比-ZOL下载...

    强大的文件和文件夹加密软件,还具有彻底隐藏磁盘以及禁止使用或只读使用USB存储设备.数据粉碎删除等功能. 软件特色功能: 1  对文件夹具有五种加密方法: 闪电加密:瞬间加密你电脑里或移动硬盘上的文件 ...

最新文章

  1. Hspice2008安装步骤
  2. CTF——Web——php 弱类型总结
  3. FLEX常用验证控件
  4. 华擎 j3455 时钟 linux,J3455安装centos步骤
  5. 【技术直通车】使用FME Extension for ArcGIS读取ArcPad AXF文件
  6. 2000G视频资料送带资源账号
  7. 高精度室内外融合定位服务平台-“羲和”系统
  8. JDK8下载安装与Win10下Java环境变量配置
  9. 六子棋AI程序---核心讲解
  10. JPEG压缩编码算法原理
  11. cpuz不显示服务器内存,cpu-z怎么看不到内存频率
  12. 吉林全国计算机报名系统入口,http://ncre.jleea.com.cn吉林计算机等级考试报名系统入口...
  13. 车型识别API调用与批量分类车辆图片
  14. 手势操作实用教程 | 实现「滑动清除」效果
  15. 大写汉字转阿拉伯数字c语言,阿拉伯数字转换成中文大写数字
  16. HANA学习季(一) :HANA的基本概念
  17. 基于RocketMQ设计秒杀
  18. 图与排列、图的存在性
  19. 51单片机DS18B20测温LCD1602显示
  20. 广数25i系统倒刀回刀m代码_GSK-25i数控铣床加工中心系统介绍

热门文章

  1. Grids for Instagram 7.0.1 Mac版
  2. 最牛逼的 Java 日志框架,性能无敌!
  3. 反编译从 APK中提取想要的资源
  4. 北航2021年复试机试第一题
  5. asp.net一些面试题(转)
  6. uni-app 结合云函数开发小程序博客(三):接入云函数,实现完善的列表刷新机制
  7. 62亿!贾跃亭的新一笔融资来了,感觉这次他要成功了!
  8. Android开发 VideoView视频播放详解
  9. 好不容易收到腾讯offer, 结果背调后被淘汰, HR: 你领导说不认识你
  10. swift Mac catalyst 微信扫码登陆