以618272为密钥加密ORDERS表中TotalCost NUMBER(35,2)列的数据
时间: 2023-12-03 12:44:34 浏览: 142
这里提供一个简单的Python示例代码,使用Fernet库进行对称加密:
```python
from cryptography.fernet import Fernet
import cx_Oracle
# 加载密钥
key = b'618272' # 请注意,这里的密钥应该是字节格式的
# 创建 Fernet 对象
fernet = Fernet(key)
# 连接数据库
conn = cx_Oracle.connect('用户名/密码@数据库地址:端口号/服务名')
cursor = conn.cursor()
# 查询 ORDERS 表中 TotalCost 列的所有数据
cursor.execute('SELECT TotalCost FROM ORDERS')
results = cursor.fetchall()
# 对每个数据进行加密并更新回数据库
for row in results:
cost = row[0]
encrypted_cost = fernet.encrypt(str(cost).encode())
cursor.execute('UPDATE ORDERS SET TotalCost=:1 WHERE TotalCost=:2', (encrypted_cost, cost))
# 提交事务并关闭连接
conn.commit()
cursor.close()
conn.close()
```
请注意,这里的加密方式是对称加密,使用同一个密钥进行加解密。因此,如果你需要解密这些数据,需要使用相同的密钥进行解密。
阅读全文