2012-02-28 18 views
0

私はcouchdbにいくつかの暗号化データを保存しようとしています。私はsaltと暗号化されたパスワードをcouchdbに保存する必要があります。塩は、Pythonのos.urandom(8)を使用して生成され、その出力例は次のようになります。os.urandom(8)の出力をCouchDBに保存する方法は?

'z/\xfe\xdf\xdeJ=y' 

私は、ドキュメントを保存するためのpython-CouchDBのAPIを使用しています。私は私が手文書保存しようとすると:

Traceback (most recent call last): 
    File "<console>", line 1, in <module> 
    File "build/bdist.macosx-10.7-intel/egg/couchdb/client.py", line 343, in __setitem__ 
    status, headers, data = resource.put_json(body=content) 
    File "build/bdist.macosx-10.7-intel/egg/couchdb/http.py", line 499, in put_json 
    **params) 
    File "build/bdist.macosx-10.7-intel/egg/couchdb/http.py", line 514, in _request_json 
    headers=headers, **params) 
    File "build/bdist.macosx-10.7-intel/egg/couchdb/http.py", line 510, in _request 
    credentials=self.credentials) 
    File "build/bdist.macosx-10.7-intel/egg/couchdb/http.py", line 260, in request 
    body = json.encode(body).encode('utf-8') 
    File "build/bdist.macosx-10.7-intel/egg/couchdb/json.py", line 68, in encode 
    return _encode(obj) 
    File "build/bdist.macosx-10.7-intel/egg/couchdb/json.py", line 129, in <lambda> 
    dumps(obj, allow_nan=False, ensure_ascii=False) 
    File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/json/__init__.py", line 238, in dumps 
    **kw).encode(obj) 
    File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/json/encoder.py", line 204, in encode 
    return ''.join(chunks) 
UnicodeDecodeError: 'ascii' codec can't decode byte 0xfe in position 3: ordinal not in range(128) 

答えて

1

を保存する前に、どちらかとBASE64または六角としてそれをエンコード、またはバイナリフィールドに保存します。

+0

例1として

os.urandom(8).encode('base64') 

をあなたは好きです。 – JasonSmith

0

このようなベース64におけるurandomの出力エンコード:はい、@マークは、あなたがどのような符号化システムを使用して、有効なUTF-8を行う必要があり、このthread

関連する問題