Skip to main content

用于 Couchbase Python SDK 的 JSON 加密 API

项目描述

# Couchbase Python

加密 用于 Couchbase 服务器的 Python 加密

## AES-256-HMAC-SHA256

AES256CryptoProvider 是一个对称加密提供程序,用于与 Couchbase 服务器一起加密 JSON 文档中的字段。提供者需要一个密钥库和用于签名/验证的私钥的名称。创建提供程序后,需要在存储桶中注册它,然后对 encrypt_document 和 decrypt_document 的任何调用都将使用该提供程序。

提供者可以这样使用:

```python
from cbencryption import AES256CryptoProvider
# 创建不安全的密钥库并注册公钥和私钥
keystore = InMemoryKeyStore()
keystore.set_key('mypublickey', '!mysecretkey#9^5usdk39d&dlf)03sL')
keystore.set_key('myprivatekey', 'myauthpassword')

# 创建和注册提供者
provider = AES256CryptoProvider(keystore, 'mypublickey', 'myprivatekey')
bucket.register_crypto_provider('AES-256-HMAC-SHA256', provider)

# 加密文档,alg 名称必须与提供者名称匹配,并且 child 必须匹配 keystore 中的密钥
prefix = '__crypt_'
document = {'message': '老灰鹅跳过了破门。'}
encrypted_document = bucket.encrypt_document(document,
[{'alg': 'AES-256-HMAC-SHA256', 'name': 'message'}],
prefix)

# 使用注册的提供者解密文档
decrypted_document = bucket.decrypt_document(encrypted, prefix)
```

输出 JSON 如下所示,可以存储在 Couchbase 中:

```json
{
"__crypt_message": {
"alg": "AES-256-HMAC-SHA256" ,
"ciphertext": "sR6AFEIGWS5Fy9QObNOhbCgfg3vXH4NHVRK1qkhKLQqjkByg2n69lot89qFEJuBsVNTXR77PZR6RjN4h4M9evg==",
"sig": "rT89aCj1WosYjWHHu0mf92S195vYnEGA/reDnYelQsM=",
"iv": "Cfq84/46Qjet3EEQ1HUwSg=="
}
}
```

## Keystore

The key store is a managed way to retrieve加密/解密过程中使用的密钥和以下方法是必需的:

```python
def get_key(key_id):
"""
将密钥作为字节数组返回
"""
return b'my-secret-key'
```

### JavaKeystore

密钥库是一种托管方式,用于检索使用 JCEKS 密钥库的加密/解密期间使用的密钥。使用JavaKeyStore 如下:

```python
from cbencryption import JavaKeyStore

# 使用密钥库文件的路径及其密码创建密钥库
keystore = JavaKeyStore('path/to/keystore.jceks', 'keystore_passphrase')
```

项目详情


下载文件

下载适用于您平台的文件。如果您不确定要选择哪个,请了解有关安装包的更多信息。

源分布

cbencryption-0.1.2.tar.gz (4.2 kB 查看哈希)

已上传 source