明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
12
返回列表 发新帖
楼主: baitang36

[源码] 分享一个生成随机字符串的源码

  [复制链接]
发表于 6 天前 | 显示全部楼层
本帖最后由 kozmosovia 于 2024-10-31 10:50 编辑

随机质量差的很

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
 楼主| 发表于 6 天前 | 显示全部楼层
本帖最后由 baitang36 于 2024-10-31 15:19 编辑

你没仔细看程序,第一个字母是每10秒换一次,第6个字符是1毫秒换一次。这是故意这么做的。
发布源码的目的是授人以渔,代码本身没多少技术含量,喜欢的人可以随意改,不喜欢无视即可。
你可以随意改自己不满意的地方。
猫老师也写过这个,代码如果发出来会吓着你的。
tryhi问为什么重复的内容不改成一个函数,也是为了这个,你可以随意去修改它。

点评

可控的随机,真随机  发表于 6 天前
发表于 6 天前 | 显示全部楼层
本帖最后由 kozmosovia 于 2024-10-31 16:55 编辑

不算随机数的生成随机字符串
  1. (Defun RandomStr (len / _Core IDX PWD RTN TXT)
  2.   (Defun _Core ()
  3.     ;;;; GUID只保留数字
  4.     (vl-list->string
  5.       (vl-remove-if-not
  6.   (function (lambda (x) (< 47 x 58)))
  7.   (vl-string->list
  8.     (vlax-get (vlax-create-object "Scriptlet.TypeLib") "GUID")
  9.   )
  10.       )
  11.     )
  12.   )
  13.   ;;; 生成ASCII=48~122的所有字符
  14.   (setq idx 47)
  15.   (while (<= (setq idx (1+ idx)) 122)
  16.     (setq pwd (cons (chr idx) pwd))
  17.   )
  18.   ;;; 去除不需要的特殊字符
  19.   (foreach abc '("/" "[" "]" "=" ":" ";" "`" "^" "\" "?" ">" "<" "@")
  20.     (setq pwd (vl-remove abc pwd))
  21.   )
  22.   (setq  idx (length pwd)
  23.   txt (_Core)
  24.   rtn ""
  25.   )
  26.   ;;;  利用GUID创建长度为(4*指定长度)的数字字符串
  27.   (while (< (strlen txt) (* 4 len))
  28.     (setq txt (strcat txt (_Core)))
  29.   )
  30.   (repeat len
  31.     ;;;每4个数字转成<9999的整数对字符表长度取模,根据模数据提取对应的字符
  32.     (setq rtn (strcat rtn
  33.           (nth (rem (atoi (substr txt 1 4)) idx)
  34.          pwd
  35.           )
  36.         )
  37.     txt (substr txt 5)
  38.     )
  39.   )
  40.   rtn
  41. )
  42. (repeat 11 (princ (strcat "\n " (RandomStr 20))))

发表于 6 天前 | 显示全部楼层

要感谢盛老师分享,如果有更好的可以发出来,也是个思路,倒不必这样说。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-11-6 09:47 , Processed in 0.153319 second(s), 20 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表