python检查一个字符串是否是由盐字符合成的

2024-09-29 02:28:35 发布

您现在位置:Python中文网/ 问答频道 /正文

我想检查我收到的access_token是否仅基于

SALT_CHARS = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789'

最好的检查方法是什么。我签了re,但我认为这与这里无关。 我可以建立一个函数来检查它,但如果有一个单行程序可以做到这一点感兴趣

is_build_from_salt_chars_only(token) -> returns bool true/false

示例:

a8B4->;true

a8#4->;false


Tags: 方法函数gt程序retokenfalsetrue
3条回答

扩展@deceze的提示:

def is_build_from_salt_chars_only(token):
    return set(token).issubset(set(SALT_CHARS))

如果您的Salt字符都是字母数字,那么最简单的方法就是使用str函数.isalnum()

salt = "adeooAEDjifewOfej23923mklEWE"
non_salt = "\dekoS,"

print(salt.isalnum())
# prints True
print(non_salt.isalnum())
# prints False

还有两种可能性:

SALT_CHARS = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789'

salt = "adeooAEDjifewOfej23923mklEWE"
non_salt = "\dekoS,"

# either with sets:
print(set(salt).issubset(set(SALT_CHARS)))
# prints True
print(set(non_salt).issubset(set(SALT_CHARS)))
# prints False

# or with a list comprehension:
print(all([x in SALT_CHARS for x in salt]))
# prints True

print(all([x in SALT_CHARS for x in non_salt]))
# prints False

你可以这样做:

def is_built_from_salt_chars_only(token):
    return all(char in SALT_CHARS for char in token)

相关问题 更多 >