我创建了一个系统,用户上传视频到我的服务器的文件系统,我需要一种方法来为视频文件生成唯一的文件名。我应该使用random.getrandbits吗?有没有办法用字母和数字的组合来做到这一点?生成随机的文件名安全和URL安全的字符串
回答
看看Universally unique identifiers (UUID)
和Python的模块uuid
。
这是我用:
import base64
import uuid
base64.urlsafe_b64encode(uuid.uuid4().bytes)
我生成一个UUID,但是我用的是字节而不是更大的十六进制版本或一个破折号。然后我将它编码成一个URL安全的base-64字符串。这是一个比使用十六进制字符串更短的字符串,但是使用base64可以使字符串中的字符对文件,URL和其他大部分内容都是安全的。
一个问题是,即使使用urlsafe_b64encode,它总是希望'='的标志到不那么安全的网页。在'=的迹象都为base-64编码信息进行解码,所以如果你只是想生成随机字符串,那么你或许可以safey与删除:
str.replace('=', '')
这完全是我现在需要的;谢谢!只是以为你想知道你对低分问题的答案仍然帮助互联网上的随机人员。 – 2013-07-20 22:49:42
感谢您的反馈。对于我们来说,迄今为止它已经经受了时间的考验,它差不多一年后,我们仍然使用这个小小的代码来在整个应用程序中生成主键。 – 2013-07-21 18:33:42
注意,在Python 3中,我必须包含'.decode('utf-8')'来获取一个字符串来替换:'base64.urlsafe_b64encode(uuid.uuid4()。bytes).decode('utf-8 ').replace('=','')' – jakewins 2017-05-18 14:11:19
可以使用,在Python 3.6 ,秘密模块。
>>> import secrets
>>> secrets.token_urlsafe(8)
'Pxym7N2zJRs'
- 1. 在perl中生成加密安全的随机数/字符串
- 2. C#中OAuth随机数的线程安全随机数/字符串生成器
- 3. PHP:使随机字符串URL安全并撤消任何使其安全
- 4. 消毒字符串使URL和文件名安全吗?
- 5. 将URL编码为安全的文件名字符串
- 6. 加密安全随机数生成器
- 7. 密码生成无安全编码的URL安全密文
- 8. Rails的验证字符串URL“安全”
- 9. 随机生成的数字和安全随机生成的数字有什么区别?
- 10. 增加安全性的随机TLD名称,数字和字母?
- 11. 使用安全随机生成随机密码
- 12. 如何在.NET中为字符串生成URL安全校验和(URL缩写)?
- 13. 串联安全字符串
- 14. 生成专用,唯一,安全的URL
- 15. Haskell中的随机数生成器是线程安全的吗?
- 16. 地址不安全的随机数生成的PHP
- 17. 安全unicode字符串/名称
- 18. static RNGCryptoServiceProvider - 生成会话和随机密码的安全性和线程安全性?
- 19. React本机同步安全随机数生成
- 20. C++ 11随机数生成器的线程安全性
- 21. 所有Android版本的安全随机数生成
- 22. cython的线程安全随机数生成
- 23. GSL + OMP:线程安全的随机数生成器在C++
- 24. 最安全的方式来为cookie生成随机会话ID?
- 25. 安全地生成一致随机的BigInteger
- 26. 用于C#的快速线程安全随机数生成器
- 27. 按位高效,统一,加密安全的随机数生成
- 28. 线程安全随机数
- 29. 安全字符串切片
- 30. 的URL安全
的可能重复http://stackoverflow.com/questions/2257441/python-random-string-generation-with-upper-case-letters-and-digits – 2012-01-17 16:53:17
你在使用什么框架?通常这是为你处理的。现有的http://docs.python.org/library/tempfile.html库有什么问题? – 2012-01-17 16:53:29
@ S.Lott我不认为他想暂时存储视频。 – Gandaro 2012-01-17 17:31:41