我正在使用C(ref。this question)进行一些(实际上并不是很少)项目,我需要在C中使用一个能够生成唯一且随机字符串的小函数。
我需要一个小的,我可以在.c文件中包含作为实用程序功能。 请帮助我的大脑,并告诉我这有多聪明!
感谢并且拥抱了最佳解决方案:)
编辑:(我刚刚在下面说过的内容)我实际上认为我只需要一个随机字符串作为一个键(看起来像一个uuid),我认为这是用时间戳等完成的。 (我不想仅为随机密钥生成添加一堆文件到我的项目中)对不起,大家好!
EDIT2:谢谢大家的意见,我最后将OSSP uuid lib与SHA-1一起使用,看起来更容易实现/整合
答案 0 :(得分:2)
不要重新发明轮子,可能已经在您选择的平台上编写了一个功能:http://en.wikipedia.org/wiki/Uuid#Implementations
答案 1 :(得分:1)
另一个链接 - 来自ext2fs的libuuid
来源。
答案 2 :(得分:1)
你可以看看这个解释整个概念的internet draft,并尝试实现其中一种算法。
答案 3 :(得分:0)
柜台怎么样?
如果您不是多线程的,只需将实际值保存在static
变量中。 (因为你需要一个字符串,你需要做一些sprintf
左右才能得到你需要的东西。)
如果你实际上是多线程的,
当您使用sprintf
生成随机密钥时,将计数器与线程和/或进程ID粘合在一起。
答案 4 :(得分:0)
tmpnam怎么办?