C#MD5加密

该博客介绍了MD5哈希验证的过程,详细解释了如何使用默认编码将授权密钥转化为字节数组,然后通过MD5进行哈希计算。博主在实践中遇到MD5编码时常出现位数不全的问题,发现问题出在字符串格式化上,通过选择正确的十六进制小写格式解决了问题。最后,结合原始密钥进行Base64编码,形成完整的验证字符串。博客重点讨论了字符串格式化和编码在安全验证中的关键作用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

MD5验证方式:
byte[] bufferAdd = Encoding.Default.GetBytes(authKey);
                        MD5 md5 = MD5.Create();
                        byte[] md5bufferOner = md5.ComputeHash(bufferAdd );
                        string str = null;
                        // 通过使用循环,将字节类型的数组转换为字符串,此字符串是常规字符格式化所得
                        foreach (byte b in md5bufferOner )
                        {
                            //得到的字符串使用十六进制类型格式。格式后的字符是小写的字母,如果使用大写(X)则格式后的字符是大写字符 
                            //但是在和对方测试过程中,发现我这边的MD5加密编码,经常出现少一位或几位的问题;
                            //后来分析发现是 字符串格式符的问题, X 表示大写, x 表示小写, 
                            //X2和x2表示不省略首位为0的十六进制数字;
                            str += b.ToString("x2");
                        }
                        byte[] buffer1 = Encoding.Default.GetBytes(orgKey);
                        string apikey = Convert.ToBase64String(buffer1) + str;


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值