一个小巧的、安全的、url友好的、唯一的python字符串id生成器

nanoid的Python项目详细描述


nano id

CircleCI

一个小巧的、安全的、url友好的、唯一的python字符串id生成器。

  • safe。它使用加密性强的随机api并测试符号的分布;
  • compact。它使用比uuid(a-za-z0-9)更大的字母表。所以身份证的大小从36个符号减少到21个符号。

用法

使用pip安装nano id:

pip install nanoid

正常

主模块使用url友好符号(a-za-z0-9)并返回一个包含21个字符的id(具有类似于uuid v4的冲突概率)。

fromnanoidimportgenerategenerate()# => NDzkGoTCdRcaRyt7GOepg

符号-,.()未在URL中编码。如果在链接的末尾使用,它们可以被标识为标点符号。

如果要减少id长度(并增加冲突概率),可以将该长度作为参数传递。

fromnanoidimportgenerategenerate(size=10)# => "IRFa-VaY2b"

别忘了在idcollision probability calculator中检查id长度的安全性。

自定义字母表或长度

如果要更改ID的字母表或长度,可以使用内部生成模块。

fromnanoidimportgenerategenerate('1234567890abcdef',10)# => "4f9zd13a42"

也提供不安全的API:

fromnanoidimportnon_secure_generatenon_secure_generate('1234567890abcdef',10)

工具

  • ID size calculator选择较小的id大小取决于您的情况。 nanoid字典,带有与nanoid/generate一起使用的流行字母表;
  • ^{}使用流行的字母。

其他编程语言

更改日志

  • 2.0.0版
    • 替换默认字母表中的~至
    • 添加不安全的快速生成器
    • 将默认字符从22个减少到21个
  • V0.3.0版
    • 修正数组越界错误。

学分

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
用于限制返回字符串大小的java<bean:write>标记   java将值传递给内部类方法?   数组无法在Java中使用for循环获取所有JSONObject   java中的StringTokenizer需要帮助   java如何在运行时在方法中自动连接类   java通过setter或构造函数分配多个字段   java JPA OneToMany ManyTone   java无法解析类org。贾布拉斯。双矩阵   java如何使用Rest-Assured从以下Json响应获取NetworkID   如果类具有“org”字段,则java@Slf4j生成“无法引用非静态变量org”   swing Java jform前景色未显示   java向kafka事件订阅rest api   java为什么我的数组会出现NullPointerException?   java通过JavaMail从Exchange server读取Zip文件后提取Zip文件的内容   Java中的字符串值舍入   java如何解析单个变量中的每个字符串   带有ListView头的java ListView   java输入流无限循环   java Grails在Spring Boot中的BootStrap#init等价物?