最近写一个验证激活的方法,想直接根据用户填的信息生成一个验证码,然后发送到此邮箱!

goodgame365 2021-01-17 08:10:59
初始方案,我用的是C# 的AES 加密办法,然后取得前6位字符,但有一个问题,AES加密后,有时会有一些特殊符号,如 + -} 】,这些不是我想要的,我想要的是纯数字加大小写英文字母的,不知大家有什么办法替换这些特殊符号!谢谢
...全文
2224 22 打赏 收藏 转发到动态 举报
写回复
用AI写文章
22 条回复
切换为时间正序
请发表友善的回复…
发表回复
csq751 2021-01-24
  • 打赏
  • 举报
回复
是丁丁顶顶顶顶
1586874907 2021-01-22
  • 打赏
  • 举报
回复
base64编码
  • 打赏
  • 举报
回复
随便说一下,你用这个方法做验证固然很节约,但是有一个重大问题,如果你的客户端被破解了,那么人家把邮箱密码改掉之后,你将无法收到验证,被迫出新版本,这将导致一个恶性循环 还是老老实实找个服务器吧,做socket 或者post之类的验证
  • 打赏
  • 举报
回复

        /// <summary>
        /// 获取md5加密值
        /// </summary>
        /// <param name="str"></param>
        /// <returns></returns>
        public string GenerateMD5(string str)
        {
            MD5CryptoServiceProvider md5 = new MD5CryptoServiceProvider();
            byte[] byteArray = Encoding.ASCII.GetBytes(str);
            byteArray = md5.ComputeHash(byteArray);
            string hashedValue = "";
            foreach (byte b in byteArray)
            {
                hashedValue += b.ToString("x2");
            }
            return hashedValue;
        }
给分
maguangzhi 2021-01-21
  • 打赏
  • 举报
回复
这种方法什么用都没有,如果用户把输入信息告诉别人,别人不就一样可以用了?一般提取全球唯一的cpu号,硬盘号,网卡号进行加密。
SinGooCMS 2021-01-20
  • 打赏
  • 举报
回复
你这是为了技术而搞技术,难道不应该为了业务而搞技术吗?验证码一般6位数字就行了,如果是要验证用户邮箱,那更简单了,只要发一串url到彷邮箱就好了!
  • 打赏
  • 举报
回复
引用 15 楼 goodgame365 的回复:
引用 14 楼 手在键盘敲很轻 的回复:
引用 13 楼 goodgame365 的回复:
[quote=引用 10 楼 手在键盘敲很轻 的回复:]你只是要验证码,用随机数不就行了吗,至于你要字母啊,特殊字符、、、把这些放进数据里面,根据下标取不就行了吗
随机是可行,但可能事先要保存在数据库里面,但如果我用他填写的信箱地址关联,再加密成AES,就可以不需动用数据库或其他形式先保存
如果你这样做的话,那么,同一个人的话,每次你的验证码都会一样了
嗯, 如果每次填的邮箱都是同一个,的确是一样的?如果能再变成随机,又能还原AES码,就更完美了![/quote]额,大兄弟,你这图啥呢?一个验证码,搞这么麻烦,你不想存数据库,可以把它存内存里面啊
goodgame365 2021-01-19
  • 打赏
  • 举报
回复
引用 14 楼 手在键盘敲很轻 的回复:
引用 13 楼 goodgame365 的回复:
引用 10 楼 手在键盘敲很轻 的回复:
你只是要验证码,用随机数不就行了吗,至于你要字母啊,特殊字符、、、把这些放进数据里面,根据下标取不就行了吗
随机是可行,但可能事先要保存在数据库里面,但如果我用他填写的信箱地址关联,再加密成AES,就可以不需动用数据库或其他形式先保存
如果你这样做的话,那么,同一个人的话,每次你的验证码都会一样了
嗯, 如果每次填的邮箱都是同一个,的确是一样的?如果能再变成随机,又能还原AES码,就更完美了!
  • 打赏
  • 举报
回复
引用 13 楼 goodgame365 的回复:
引用 10 楼 手在键盘敲很轻 的回复:
你只是要验证码,用随机数不就行了吗,至于你要字母啊,特殊字符、、、把这些放进数据里面,根据下标取不就行了吗
随机是可行,但可能事先要保存在数据库里面,但如果我用他填写的信箱地址关联,再加密成AES,就可以不需动用数据库或其他形式先保存
如果你这样做的话,那么,同一个人的话,每次你的验证码都会一样了
goodgame365 2021-01-19
  • 打赏
  • 举报
回复
引用 10 楼 手在键盘敲很轻 的回复:
你只是要验证码,用随机数不就行了吗,至于你要字母啊,特殊字符、、、把这些放进数据里面,根据下标取不就行了吗
随机是可行,但可能事先要保存在数据库里面,但如果我用他填写的信箱地址关联,再加密成AES,就可以不需动用数据库或其他形式先保存
goodgame365 2021-01-19
  • 打赏
  • 举报
回复
引用 8 楼 datafansbj 的回复:
[quote=引用 6 楼 goodgame365 的回复:][quote=引用 3 楼 楠小南 的回复:]想好看一点是吧,将他16进制输出到字符串,OK。 想又好看又短是吧,告诉你!没门
可以短啊,我只需要截取前面6个字符就可以了,因为只是验证用的,不需要还原![/quote] 只取 6 个字符,长度太短,很容易被仿冒,安全性较差。[/quote] 这六个字符是由他填写的信箱地址有关的,除非AES加密能破解,要不仿冒的可能性很小吧
goodgame365 2021-01-19
  • 打赏
  • 举报
回复
引用 10 楼 手在键盘敲很轻 的回复:
你只是要验证码,用随机数不就行了吗,至于你要字母啊,特殊字符、、、把这些放进数据里面,根据下标取不就行了吗
就是不想动用数据库,只要可逆解析就行!
  • 打赏
  • 举报
回复
你只是要验证码,用随机数不就行了吗,至于你要字母啊,特殊字符、、、把这些放进数据里面,根据下标取不就行了吗
正怒月神 2021-01-19
  • 打赏
  • 举报
回复
把你的aes,在md5一下
datafansbj 2021-01-19
  • 打赏
  • 举报
回复
引用 6 楼 goodgame365 的回复:
[quote=引用 3 楼 楠小南 的回复:]想好看一点是吧,将他16进制输出到字符串,OK。
想又好看又短是吧,告诉你!没门
可以短啊,我只需要截取前面6个字符就可以了,因为只是验证用的,不需要还原![/quote]

只取 6 个字符,长度太短,很容易被仿冒,安全性较差。
assky124 2021-01-19
  • 打赏
  • 举报
回复
数据校验方法找一个就好了,啥奇偶校验 https://blog.csdn.net/zcshoucsdn/article/details/94131769
goodgame365 2021-01-19
  • 打赏
  • 举报
回复
引用 3 楼 楠小南 的回复:
想好看一点是吧,将他16进制输出到字符串,OK。 想又好看又短是吧,告诉你!没门
可以短啊,我只需要截取前面6个字符就可以了,因为只是验证用的,不需要还原!
by_封爱 版主 2021-01-19
  • 打赏
  • 举报
回复
guid不就行么...
极客诗人 2021-01-18
  • 打赏
  • 举报
回复
引用 3 楼 楠小南 的回复:
想又好看又短是吧,告诉你!没门
一语道中
楠小南 2021-01-18
  • 打赏
  • 举报
回复
想好看一点是吧,将他16进制输出到字符串,OK。 想又好看又短是吧,告诉你!没门
加载更多回复(2)

110,546

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧