我正在尝试实施 RADIUS 协议。根据 RFC 2866,对于 RADIUS 计费,计算 Authenticator 字段时的步骤如下:
计费响应数据包中的身份验证器字段称为响应身份验证器,并包含通过八位位组流计算的单向 MD5 哈希值,该八位位组流由计费响应代码、标识符、长度、计费请求中的请求身份验证器字段组成正在回复的数据包,以及响应属性(如果有),后跟共享密钥。生成的 16 个八位字节 MD5 哈希值存储在计费响应数据包的验证器字段中。
我正在尝试计算它,但无法获得正确的值: Code = 5 (0x05) 1 byte Identifier: 134 (0x86) 1 byte Length: 20 (0x0014) 2 bytes Request Authenticator: bac85592365b2e786ad3095a1cf22646 ,16 bytes 没有属性在我的回复中共享秘密:63 21 6d 40 35 32 32 35 (c!m@5225)
因此 MD% 哈希的输入将是: 05860014bac85592365b2e786ad3095a1cf2264663216d4035323235 我使用这两个网站得到: b7ac1e6909302b06bd021aede380dbc5:http://www.md5hashgenerator.com/和http://www.mir aclesalad.com/webtools/md5.php
实际响应的身份验证器为 9629702dca9469714fb423ca7b1525bc 我正在比较客户端/服务器发送的真实 RADIUS 数据包,并且我计算的身份验证器与服务器发送的身份验证器不匹配。有什么想法吗?
The RFC 2865 at the end has a couple of examples. Example 1, using the shared
secret "xyzzy5461" …Run Code Online (Sandbox Code Playgroud) 这是一个内存泄漏?,假设Foo()是一个带有默认构造函数的类
int main()
{
Foo * p = new Foo();
return 0;
}
Run Code Online (Sandbox Code Playgroud)
我认为这不是泄漏,因为应用程序在主要结束后立即结束,并且假设操作系统在完成后释放该应用程序的所有资源.这个假设是对的吗?