如果您使用其中编码的数据(产品密钥)公开随机生成的字符串或字符串。用诅咒词来消毒他们是否合理,以避免客户在极少数情况下冒犯生成令人反感的词语。
任何人都有客户因随机生成的诅咒词而受到冒犯? 那里的任何人都有代码逻辑来过滤掉它们吗?
由于
修改
开发产品密钥生成系统之后的一次,该系统将客户数据编码到其中。作为一个笑话,我们编写了一个程序来查看客户输入会产生有趣的单词。
答案 0 :(得分:40)
不要使用元音生成随机字符串,然后您不必担心诅咒字。
答案 1 :(得分:28)
是的,理由是任何会被他们在随机生成的字符串中看到的东西冒犯的人都会想到更多他们觉得冒犯的东西而不是消毒。
不要为疯狂进行优化。
答案 2 :(得分:6)
最简单的解决方案是从'消毒'字母表生成;使用一组不可能形成单词的字符。其中一个答案中的一个建议是十六进制,这是一个很好的选择,或者从字母表中删除一些关键字母。
请注意,只丢掉元音不会起作用......从剩余的辅音中推断它们太容易了。
答案 3 :(得分:6)
Microsoft在产品密钥中省略了以下内容:
0 1 2 5 A E I O U L N S Z
我省略了[0-9A-Z]中的那些,并且一旦生成了密钥,我就匹配英语中最常见的两个字母组合的a list I found,并且如果匹配则重新生成密钥。为了速度,我编辑字母对列表,首先从该列表中剔除由于在剥离列表中包含字符而已经被阻止的对(如果从字符集生成密钥,则'HE'不能存在不包括'E'),然后将一些从'E'转换为'3',如'H3'而不是'HE'等。我还添加了一些我自己的,如'KK'和' CK'用于边缘情况。人们也可以根据需要省略“3”的速度,尽管你可以生成更多的字符来省略更少的唯一键。
可能不是一个完美的解决方案,但它足以满足我的需求,并且可以防止几乎所有英语单词被生成,冒犯或不进攻。
答案 4 :(得分:4)
这对我有意义。我的意思是,如果有人发布了你的产品图片,并将其盖在CD盒背面,那将是一场非常糟糕的公关灾难:
12345-67890-F ** KU-ABCDE-FGHIJ
这听起来很有趣,但你永远不知道这个人会有什么样的幽默感来碰巧拿起那个包裹。
答案 5 :(得分:2)
查看标有clbuttic
的项目答案 6 :(得分:2)
我认为最好明白避免元音。像JKL-YOUAREMYFRIEND-0001-KK这样的产品密钥可能不会令人反感,但它听起来也不是一件严肃的事情。
答案 7 :(得分:1)
将随机生成的“单词”限制为十六进制字符,我不相信你会有任何英语语言诅咒。这也促使你不要在你的随机字生成器上花太多时间。
当然,可能有一些语言可以用十六进制数字进行诅咒,但是你无论如何也不太可能知道/过滤那些诅咒。
答案 8 :(得分:1)
如果你只是担心产品密钥,我会坚持使用十六进制数字,甚至guid也适合你。可能没有机会用这些约束产生“顽皮”一词。你也可以坚持数字。如果你必须有字母表中所有字母的随机字符串,那么它可能比抱歉更安全,所以我会进行过滤。
答案 9 :(得分:1)
我们正在使用随机字符串生成器来发送给客户的安全密钥,并且不从允许的字符中省略元音等。没有谎言,其中一个字符串它产生的是“7D9WAF * CKS”......!幸运的是,这是在开发过程中发现的,现在我们将限制允许的字符。呼!那是一个非常接近的人 - 很高兴找到这个帖子!
答案 10 :(得分:1)
非常有趣的tale of woe可以阅读与您类似的情况。
答案 11 :(得分:0)
可以想象,但我不会花太多时间,特别是如果你有字母和数字。
答案 12 :(得分:0)
我正在为我编写的一个webapp使用随机生成的,语音发声的密码。我最终硬编码了一些不可接受的“脏”字列表,但与我的模式匹配的列表最终变得很短。
答案 13 :(得分:0)
没有。你没有机会收集所有世界语言的所有诅咒词。这些词通常不会出现在词典中。