SIP Realm 认证 Response 值的计算方法

sip 协议中 realm 认证中 Response 值的计算方法:

from hashlib import md5  
username = ‘10000′  
realm = ‘Yate’  
password = ‘10000′  
  
nonce = ‘39a45e7afdc6ec69d156ed1de42cfc5b’  
method = ‘REGISTER’  
uri = ’sip:127.0.0.1′  
  
print md5(‘%(hash1)s:%(nonce)s:%(hash2)s’ % {‘hash1′:md5(‘%(username)s:%(realm)s:%(password)s’ % {‘username’:username, ‘realm’:realm, ‘password’:password}).hexdigest(), ‘nonce’:nonce, ‘hash2′: md5(‘%(method)s:%(uri)s’ % {‘method’:method, ‘uri’:uri}).hexdigest()}).hexdigest()  

算法:
计算 MD5(username:realm:password) 为 HASH1
计算 MD5(method:uri) 为 HASH2
计算 MD5(HA1:nonce:HA2) 得到结果
时间: 2024-08-02 14:20:35

SIP Realm 认证 Response 值的计算方法的相关文章

sip协议注册时response值的计算方法

sip注册时有四个步骤, 1.客户端向服务端发送不带Authorization字段的注册请求 2.服务端回401,在回复消息头中带WWW_Authorization 3.客户端向服务端发送带Authorization字段注册请求,Authorization字段中的response信息是 根据收到的WWW_Authorization中的信息和本地的一个密码信息计算出来的. 4.服务端会自己计算一个Response值,和客户端发来的对比,一样的会回客户端一个200OK,表示 注册成功.比对不一样回其

对SIP摘要认证方案的理解

一.口令认证常见机制 基于口令认证的系统一般有以下几种口令验证方式: 1.客户端以明文形式将用户名密码通过网络发送到服务器,服务器与已经保存在服务端的用户名密码进行比较,一致则通过验证: HTTP基本鉴别方案即采用这种方式,它不会对以明文方式在物理网络中传输的实体进行任何形式的保护,显然这不是安全的用户鉴别方式. 2.客户端对用户名和密码进行加密,服务端解密后在验证: 这种方式有一定的安全性,但无论加密方式采用对称加密方式(如DES),还是非对称加密方式(如:MD5),都不足够安全. 对称加密方

Jboss7.1 加入realm认证

jboss-as-7.1.1.Final\standalone\configuration: 1, standalone.xml中 <security-domains>标签里面添加: <security-domain name="myRealm" cache-type="default"> <authentication> <login-module code="Remoting" flag="

IMS AKA鉴权及应用流程详解

IMS AKA鉴权及应用流程详解 @auth doubleRabbit @date 2017-03-14 目的 了解鉴权及通信类业务相关鉴权算法的概念原理 了解IMS注册流程 了解IMS鉴权流程应用 鉴权含义 鉴权是指用户访问系统的权利,是提升系统安全性的一种方式,传统鉴权方法就是用户名与密码. 鉴权与授权的区别联系.逻辑上授权过程发生在鉴权之后,而实际中有时鉴权与授权对于用户来说体现为同一过程.例如在EPC附着过程中,先发生AIA鉴权过程,再发生ULR位置更新过程(授权). 接下来讲的是针对通

SIP 认证

理解SIP的认证 1. 认证和加密    认证(Authorization)的作用在于表明自己是谁,即向别人证明自己是谁.而相关的概念是MD5,用于认证安全.注意MD5仅仅是个hash函数而已,并不是用于加密.因为hash函数处理后的数据没法进行反向恢复,这样子的话别人没法盗取你认证身份的口令.    加密(Encryption)的作用在于对想传输的数据进行处理,在网络中即使被窃取也难以破解.加密的信息可以被破解,这需要一把钥匙——“密钥”.通过密钥,我们可以对数据进行加密和解密.最有名的专用密

sip鉴权认证算法详解及python加密

1. 认证和加密    认证(Authorization)的作用在于表明自己是谁,即向别人证明自己是谁.而相关的概念是MD5,用于认证安全.注意MD5仅仅是个hash函数而已,并不是用于加密.因为hash函数处理后的数据没法进行反向恢复,这样子的话别人没法盗取你认证身份的口令.    加密(Encryption)的作用在于对想传输的数据进行处理,在网络中即使被窃取也难以破解.加密的信息可以被破解,这需要一把钥匙--"密钥".通过密钥,我们可以对数据进行加密和解密.最有名的专用密钥加密系

Shrio认证详解+自定义Realm

Authentication(身份认证)是Shiro权限控制的第一步,用来告诉系统你就是你. 在提交认证的时候,我们需要给系统提交两个信息: Principals:是一个表示用户的唯一属性,可以是用户名,邮箱之类的. Credentials:是证明用户身份的证书,可以是密码或者指纹之类的. 认证主要分为三步: 1.收集认证信息 2.提交认证信息 3.如果认证成功,则允许访问,否则就拒绝访问或者重试. 收集认证信息: 在入门的例子中,使用了一个UsernamePasswordToken来收集用户的

如何自定义Tomcat Realm实现我们的用户认证需求

目录 1. 什么是Realm? 2. 如何配置使用Tomcat自带的几种Realm? 3. 如何配置使用我们自定义的Realm? 3.1 实现org.apache.catalina.Realm接口 3.2 将Realm编译成.class文件 3.3 在MBeans描述符里声明你的realm 3.4 将Realm编译后的文件打成jar包 3.5 像配置标准realm一样在server.xml文件中声明你的realm 4. Realm的优点. 正文 1. 什么是Realm? Realm,中文可以翻译

SSM整合Shiro___自定义认证Realm

加入依赖 <dependencies> <!-- https://mvnrepository.com/artifact/org.springframework/spring-context --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>4.3.21.