我有一个解密媒体数据包的应用程序。 它要求我提供万能钥匙和盐键。
我的SDP(在谈判结束后)提供给我 AES_CM_128_HMAC_SHA1_80内联:Fu8vxnU4x1fcCzbhNrtDV0eq4RnaK4n2 / jarOigZ
根据SDP rfc,“inline:”之后的字符串是: “连接主密钥和salt,base64编码” 当主密钥是X字节而盐是Y字节时。
我在招架:
byte[] masterAndSalt = Convert.FromBase64String("Fu8vxnU4x1fcCzbhNrtDV0eq4RnaK4n2/jarOigZ")
然后将第一个x字节输入到主服务器,将另一个字节获取为盐。
但我的应用程序说我的密钥错了,我不明白 - 我应该使用除Convert.FromBase64String之外的其他东西吗?
答案 0 :(得分:2)
应该做的是在密钥上使用Convert.FromBase64String, 它产生了一个30字节长的数组,将前16个作为主数据,最后14个作为salt。
解密算法应该从中产生会话密钥和盐(以及其他信息)。