首页 > 解决方案 > 如何假名化和假名化回来

问题描述

我想匿名化我的数据框。我有名字和学生证。我想把这个名字化名,这样它就无法识别了。我找到了gocept.pseudonymize 库。我找到的图书馆就是这样做的。只有我想输入假名值,然后我应该收到我的字符串。

  Student  Studendid          Student    Studendid     Student  Studendid   
0   Stud1    1              0   ah274as   1        0   Stud1    1
1   Stud2    2              1   ah474as   2        1   Stud2    2  
2   Stud3    3              2   ah454as   3        2   Stud3    3  
3   Stud4    4              3   48sdfds   4        3   Stud4    4  
4   Stud5    5       ->     4   dash241   5    ->  4   Stud5    5 
5   Stud6    6              5   asda212   6        5   Stud6    6
6   Stud7    7              6   askdkj2   7        6   Stud7    7  
7   Stud8    8              7   kadhh23   8        7   Stud8    8  
8   Stud9    9              8   asdhb27   9        8   Stud9    9 

你知道可以做到这一点的图书馆吗?还是一种方法?

import gocept.pseudonymize
gocept.pseudonymize.text('Here is my little text', 'secret')
[OUT] 'u7YJWz RqdYkfNUFgZii2Y'

# What I want
gocept.pseudonymize.getString('u7YJWz RqdYkfNUFgZii2Y')
[OUT] 'Here is my little text'

标签: python

解决方案


这是一个简单的字符串编码示例:

sentence = 'Here is my little text'
encoded = ""
decoded = ""
shift   = 8 # change this to get different results

for c in sentence:
  i = ord(c)
  if (i >= 48 and i < 58): 
    continue
  elif (i >= 65 and i < 91): 
    i = ((i - 65 + shift) % 26) + 65
  elif (i >= 97 and i < 123): 
    i = ((i - 97 + shift) % 26) + 97
  encoded += chr(i)

print(encoded) # => Pmzm qa ug tqbbtm bmfb

for c in encoded:
  i = ord(c)
  if (i >= 48 and i < 58): 
    continue
  elif (i >= 65 and i < 91): 
    i = ((i - 65 - shift) % 26) + 65
  elif (i >= 97 and i < 123): 
    i = ((i - 97 - shift) % 26) + 97
  
  decoded += chr(i)

print(decoded) # => Here is my little text

推荐阅读