2010-03-16 3 views
0

Я использую XML в качестве моего бэкэнда для приложения ...Шифрование базы данных XML в python

LXML используется для синтаксического анализа xml.

Как я могу зашифровать этот XML-файл, чтобы убедиться, что данные защищены ......

заранее спасибо.

+1

вы пропустили R в Encry пт. – Pretzel

+0

благодарит за указание ошибки – RSK

ответ

4

Поскольку 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)) 

Есть много библиотек криптографических доступны в питона

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

Я думаю, hashlib необратим ... Мне нужен обратимый номер – RSK

+0

после дешифрования мы получим данные как строку. правильно???? то как я могу разобрать эту строку xml с библиотекой lxml ???? – RSK

Смежные вопросы