Foxtable(狐表)用户栏目专家坐堂 → MD5生成的唯一编码有重复,该怎么优化啊?


  共有2791人关注过本帖树形打印复制链接

主题:MD5生成的唯一编码有重复,该怎么优化啊?

帅哥哟,离线,有人找我吗?
guosheng
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:896 积分:7535 威望:0 精华:0 注册:2017/12/27 14:19:00
MD5生成的唯一编码有重复,该怎么优化啊?  发帖心情 Post By:2020/10/29 16:28:00 [只看该作者]

只要e.Form.Controls("科目编码" & i)的值一样,生成的md5值都一样。是不是因为执行太快了,i不同时,取的vv值一样造成的?
For i=0 To 9
    If e.Form.Controls("科目编码" & i).value IsNot Nothing
        Dim dr As Row =Tables("accvouch").addnew()
        vv=Date.Today.now()
        dr("凭证随机ID")=MD5Encrypt(vv & e.Form.Controls("科目编码" & i).value)
endif
next
[此贴子已经被作者于2020/10/29 16:28:05编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107301 积分:545766 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/10/29 16:30:00 [只看该作者]

试试
dr("凭证随机ID")=MD5Encrypt(format(vv,"yyyyMMddHHmmssffffff") & e.Form.Controls("科目编码" & i).value)

 回到顶部
帅哥哟,离线,有人找我吗?
guosheng
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:896 积分:7535 威望:0 精华:0 注册:2017/12/27 14:19:00
  发帖心情 Post By:2020/10/29 16:38:00 [只看该作者]

即使每次执行一次停顿一下,还是重复啊。怎么回事啊?
dr("凭证随机ID")=MD5Encrypt(format(vv,"yyyyMMddHHmmssffffff") & e.Form.Controls("科目编码" & i).value)
messagebox.show(111)

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107301 积分:545766 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/10/29 16:40:00 [只看该作者]

vv=Date.now()

 回到顶部
帅哥哟,离线,有人找我吗?
guosheng
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:896 积分:7535 威望:0 精华:0 注册:2017/12/27 14:19:00
  发帖心情 Post By:2020/10/29 16:46:00 [只看该作者]

还是重复啊。
Dim i As Integer
Dim vv As String
For i=0 To 9
        vv=Date.now()
        output.show(MD5Encrypt(format(vv,"yyyyMMddHHmmssffffff")))
Next

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107301 积分:545766 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/10/29 16:57:00 [只看该作者]

Dim i As Integer
Dim vv As String
For i=0 To 9
        vv=format(Date.Now,"yyyyMMddHHmmssffffff")
        output.show(MD5Encrypt(vv))
Next

 回到顶部
帅哥哟,离线,有人找我吗?
guosheng
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:896 积分:7535 威望:0 精华:0 注册:2017/12/27 14:19:00
  发帖心情 Post By:2020/10/29 17:23:00 [只看该作者]

时间格式化后给一个变量,再进行md5,确实不重复了。如果把时间格式化后直接给md5函数。两者有啥区别啊?我感觉没啥区别啊。
vv=format(Date.Now,"yyyyMMddHHmmssffffff")


 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107301 积分:545766 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/10/29 17:29:00 [只看该作者]

Dim vv As String = Date.now()
msgbox(vv)
vv = format(Date.Now,"yyyyMMddHHmmssffffff")
msgbox(vv)

 回到顶部
帅哥哟,离线,有人找我吗?
guosheng
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:896 积分:7535 威望:0 精华:0 注册:2017/12/27 14:19:00
  发帖心情 Post By:2020/10/30 9:11:00 [只看该作者]

按照这个改法还是有重复啊?
Dim i As Integer
Dim vv As String
For i=0 To 9
        vv=format(Date.Now,"yyyyMMddHHmmssffffff")
        output.show(MD5Encrypt(vv))
Next


H5FYjfsQBSk4j7IJ6FYlWQ==
YoWUBDicujOdXCEUxIBblA==
YoWUBDicujOdXCEUxIBblA==
eiqaBOrlSv/1OFT4VXju8w==
XTU5gmbWSyZB2dY0C55WSQ==
XTU5gmbWSyZB2dY0C55WSQ==
3uDe+1AJ7tgUOhEHrIZr0w==
3uDe+1AJ7tgUOhEHrIZr0w==
JJZW07YwSEQVxFndzncOBw==
JJZW07YwSEQVxFndzncOBw==

 回到顶部
帅哥哟,离线,有人找我吗?
chen37280600
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:六尾狐 帖子:1265 积分:7844 威望:0 精华:4 注册:2017/12/31 14:53:00
  发帖心情 Post By:2020/10/30 9:19:00 [只看该作者]

如果是为了不重复的随机码,推荐用UUID

output.show(Guid.NewGuid.ToString)

结果:13c22708-d901-4a5e-9d55-440a4ae5c466


 回到顶部
总数 11 1 2 下一页