我有一个300列的df,但有一列ID
,我要加密,并允许其他任何人用密钥解密,如果我给他们df作为一个csv。
这可能吗?
我知道如何哈希一个列,但据我所知,我不能解开它或给某人一个密钥来解除它。
先感谢您。
编辑:
df
id
1
2
3
@Wen就是一个很好的例子:
(1:2), (2:3),(3:4)
新的df
id
2
3
4
我推荐python itsdangerous
库。这是一个简单的例子:
from itsdangerous import URLSafeSerializer
s = URLSafeSerializer('secret-key')
print(s.dumps([1, 2, 3, 4]))
# 'WzEsMiwzLDRd.wSPHqC0gR7VUqivlSukJ0IeTDgo'
print(s.loads('WzEsMiwzLDRd.wSPHqC0gR7VUqivlSukJ0IeTDgo'))
# [1, 2, 3, 4]
您和其他可信方之间可以共享secret-key
来解密字符串或列。
这确实依赖于序列化,并且一些python数据类型不容易序列化,但如果你只需要一个列名或类似的东西,这可能会很好。
我想你可以这样做
key=dict(zip(np.arange(len(df)),df.id))
df.id=np.arange(len(df))
**# for the person do not have the key**
df
Out[640]:
id
0 0
1 1
2 2
**# for the person who havde the key**
df.id=df.id.map(key.get)
df
Out[642]:
id
0 1
1 2
2 3