我想在一个文件夹中创建一个受密码保护的文件(有一些扩展名)n当在文件夹中创建一个新文件时它应该被自动加密n密码在使用python Linux的保护 我有pycrypto试过我可以加密,但我不能密码保护的文件夹,以便plz帮助我解决这个 下面是完整的前卫如何在linux下使用python创建一个受密码保护的文件夹/文件
def discover():
#file_path = ''
#print file_path
for root, dirs, files in os.walk(r'/root/Desktop/rakesh/rakeshp/dlp'):
for file_name in files:
file_path = os.path.join(root, file_name)
#print file_path
file_list = []
if file_path.endswith('.py'):
file_list.append(file_path)
dict = {}
status=""
for p in file_list:
if not os.access(p, os.F_OK):
dict[p]=status=status+"NOEXISTS"
if(os.access(p,os.R_OK)):
dict[p]=status=status+"READ,"
if(os.access(p, os.W_OK)):
dict[p]=status=status+"WRITE,"
if (os.access(p, os.X_OK)):
dict[p]=status=status+"EXECUTE"
elif os.access(p, os.F_OK) and not (os.access(p,os.R_OK)) and not (os.access(p, os.W_OK)) and not (os.access(p, os.X_OK)):
dict[p]=status=status="NOACCESS"
status="" # Set blank before we enter the loop again
os.chmod(file_path,0444)
for size in file_list:
size = os.path.getsize(file_path)
#print size
#print (dict)
in_filename = file_path
#print in_filename
if not out_filename:
out_filename = in_filename + '.enc'
iv = 16 * '\x00'
#iv = bytes([random.randint(0, 0xFF) for i in range(16)])
#print iv
encryptor = AES.new(key, AES.MODE_CBC, iv)
with open(in_filename, 'rb') as infile:
with open(out_filename, 'wb') as outfile:
outfile.write(struct.pack('
outfile.write(iv)
while True:
chunk = infile.read(chunksize)
if len(chunk) == 0:
#print (chunk)
break
elif len(chunk) % 16 != 0:
chunk += ' ' * (16 - len(chunk) % 16)
#print (chunk)
outfile.write(encryptor.encrypt(chunk))
if __name__ == "__main__":
discover()
2014-01-08
rakesh