【问题标题】:Check if string is just random generated with Python检查字符串是否只是用 Python 随机生成的
【发布时间】:2021-02-25 21:55:41
【问题描述】:

检查字符串是否“随机生成”的方法是什么,是否有任何库? 例如:

random_string1 = 'gr24gF3fds52'
random_string2 = '111111gr22124gF3fd55425hdhgdhgdhd4565553fd5s52'

这将是一个“普通”字符串:

normal1 = 'this is just a string'
normal2 = 'helo-how-are-you'
normal3 = '452415422542'

所以随机生成的字符串应该是没有任何顺序的字符串,它有数字和字符。 它看起来像是加密的。

【问题讨论】:

  • 为什么你需要知道一个字符串是否是“随机的”?你打算用这些信息做什么?您认为什么是“非随机”字符串?
  • 没有。您正在寻找的是 Base64 编码。尝试解码它,如果它失败,那么它没有被编码。 stackoverflow.com/questions/12315398/…
  • 我不认为你需要一个库——你只需要确定随机对你意味着什么,看看这些规则是否符合你的要求。没有“标准方法”或包能够实现您的规则!
  • 加密的字符串不会是随机的。
  • 有香农熵等数学指标。

标签: python


【解决方案1】:

“随机”的概念因您的标准而异。但是,如果我对您的理解正确,您想检查它是否已加密/编码/散列。为此,我建议阅读以下两篇文章:

您可以修改第二个的第一个响应不包括 40 限制的长度。

def is_sha1(maybe_sha):
    try:
        sha_int = int(maybe_sha, 16)
    except ValueError:
        return False
    return True

或者第二个响应的 40 限制为“+”而不是“40”。

\b[0-9a-f]+\b

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-10-19
    • 1970-01-01
    • 2019-08-22
    • 2015-03-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-24
    相关资源
    最近更新 更多