【问题标题】:Encrypting XML database in python在python中加密XML数据库
【发布时间】:2010-03-16 07:40:37
【问题描述】:

我正在使用 XML 作为应用程序的后端...

LXML用于解析xml。

如何加密这个 xml 文件以确保数据受到保护......

提前致谢。

【问题讨论】:

  • 您在 Encrypt 中缺少 R。
  • 感谢指出错误

标签: python xml encryption lxml


【解决方案1】:

由于 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中有很多可用的密码库

  1. Pure-Python RSA implementation
  2. Python Encryption Examples
  3. PyXMLSec
  4. PyCrypto - The Python Cryptography Toolkit

【讨论】:

  • 我认为 hashlib 是不可逆的......我需要一个可逆的
  • 解密后我们会得到一个字符串的数据。正确的????那我如何用 lxml 库解析那个字符串 xml????
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-11-02
  • 2013-12-24
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多