【发布时间】:2010-03-16 07:40:37
【问题描述】:
我正在使用 XML 作为应用程序的后端...
LXML用于解析xml。
如何加密这个 xml 文件以确保数据受到保护......
提前致谢。
【问题讨论】:
-
您在 Encrypt 中缺少 R。
-
感谢指出错误
标签: python xml encryption lxml
我正在使用 XML 作为应用程序的后端...
LXML用于解析xml。
如何加密这个 xml 文件以确保数据受到保护......
提前致谢。
【问题讨论】:
标签: python xml encryption lxml
由于 XML 包含重复结构,最好先compress,然后再encrypt。
下载并安装PyDes。
from pyDes import *
import bz2
def encrypt(data,password):
k = des(password, CBC, "\0\0\0\0\0\0\0\0", pad=None, padmode=PAD_PKCS5)
d = k.encrypt(data)
return d
def decrypt(data,password):
k = des(password, CBC, "\0\0\0\0\0\0\0\0", pad=None, padmode=PAD_PKCS5)
d = k.decrypt(data)
return d
password = "eight222" # password length should be 8
data = '''
<?xml version="1.0"?>
<library>
<shelf id="fiction">
<book>
<title>Of Mice and Men</title>
<author>John Steinbeck</author>
</book>
<book>
<title>Harry Potter and the Philosopher's Stone</title>
<author>J.K. Rowling</author>
</book>
</shelf>
</library>
'''
print len(data)
compressed_data = bz2.compress(data)
print len(compressed_data)
encrypted_data = encrypt(compressed_data,password)
print "%r"%encrypted_data
uncompressed_encrypted_data = encrypt(data,password)
print len(encrypted_data)
print len(uncompressed_encrypted_data)
print bz2.decompress(decrypt(encrypted_data,password))
python中有很多可用的密码库
【讨论】: