我有一个解密媒体数据包的应用程序。它要求我提供主密钥和盐密钥。
我的SDP向我提供(协商结束后) AES_CM_128_HMAC_SHA1_80 inline:Fu8vxnU4x1fcCzbhNrtDV0eq4RnaK4n2/jarOigZ
根据SDP,当主密钥是X字节,盐是Y字节时,"inline:“之后的字符串是:"concatenated key and salt,base64 encoded”。
我在打胎:
byte[] masterAndSalt = Convert.FromBase64String("Fu8vxnU4x1fcCzbhNrtDV0eq4RnaK4n2/jarOigZ")然后获取前x个字节给master,另一个y表示salt。
但是我的应用程序显示我的密钥是错的,我不明白--我应该使用Convert.FromBase64String之外的其他密钥吗?
发布于 2011-08-25 17:03:03
好了,我猜对了。在AES_CM_128_HMAC_SHA1_80密码中,主密钥是16字节,而salt是14字节长。
应该做的是对键使用Convert.FromBase64String,它生成了一个30字节长的数组,将前16个作为主数组,最后14个作为salt。
解密算法应该从中产生会话密钥和salt (以及其他信息)。
https://stackoverflow.com/questions/6730810
复制相似问题