隐藏电子邮件地址中的字符…(星号)



如何转换/隐藏电子邮件地址中的字符从

member@company.org

m****r@c*****y.org

我发现了一个名为"email_split"的包,我可以(可能)使用它…有没有更好的办法?

你可以定义一个函数来创建一定长度的星号,然后在适当的地方添加星号。

像这样:

def ast(length):
s=""
for i in range(length):
s= s + "*"
return s

s= "member@company.org"
a = s.split("@")
a2 = a[1].split(".")
obs_email= a[0][0] + ast(len(a[0][1:-1])) + a[0][-1] + "@" + a2[0][0] + ast(len(a2[0][1:-1])) + a2[0][-1] + "." + a2[1]

输出:

'm****r@c*****y.org'

编辑:更正@saromba评论的错误

这是我的解决方案。甚至"@"符号之前的点和更长的或更短的结尾(.uk,…)都是可能的

mail = "me.mber@company.org"
at = mail.find('@')
dot = mail[at:].find('.')
mail = mail[0] +'*'*(at-2)+ mail[at-1:at+2]+'*'*(dot-3)+mail[at+dot-1:]

可以用星号隐藏第一个和最后一个字符之间的部分。python中的STR索引和字符串连接非常有用。

user@user-Inspiron:~/code/advanced_python$ cat remthis.py  
def mask_all_in_between_first_and_last(name):
name = name[0] + '*'*(len(name)-2) + name[-1]
return name
def mask_email(email):
username, domain_info = email.split('@')
domain_name, domain = domain_info.split('.')

username = mask_all_in_between_first_and_last(username)
domain_name = mask_all_in_between_first_and_last(domain_name)
return f'{username}@{domain_name}.{domain}'
if __name__ == '__main__':
to_be_masked = 'member@company.org'
masked = mask_email(to_be_masked)
print(masked)
user@user-Inspiron:~/code/advanced_python$ python remthis.py 
m****r@c*****y.org
user@user-Inspiron:~/code/advanced_python$ 

相关内容

  • 没有找到相关文章

最新更新