用Kerberos为J2ME应用程序上锁,第2部分 - 生成一个Kerberos票据请求 - 编程入门网
content){}
public byte[] getGeneralizedTimeBytes (byte[] generalizedTimeContent){}
public byte[] concatenateBytes (byte[] array1, byte[] array2){}
public byte[] getSequenceBytes (byte[] sequenceContents){}
public byte[] getTagAndLengthBytes (int tagType, int tagNumber, byte[] tagContents){}
}//ASN1DataTypes
getLengthBytes() (在清单 2 中显示的)这个方法将一个整数值( length )作为参数。它生成一个该长度的 ASN.1 表示,并返回一个符合 ASN.1 长度格式的字节数组。 清单 2. getLengthBytes() 方法
用Kerberos为J2ME应用程序上锁,第2部分 - 生成一个Kerberos票据请求(3)时间:2011-08-05 IBM Faheem Khan回想一下在本系列的 第一篇文章 中对表 2 的讨论,有两种表示字节长度的方法:单字节表示法和多 字节表示法。单字节长度表示法用于表示小于或者等于 127 的长度值,而当长度值大于 127 时使用多字 节长度表示法。 getLengthBytes() 方法首先检查长度值是否为负。如果为负,则只是返回 null,因为我不能处理负 值。 然后这个方法检查长度值是否小于或者等于 127。如果是,就需要使用单字节长度表示法。 注意在 J2ME 中一个整数是 4 字节数据,而单字节长度表示法只需要 1 个字节。如果长度参数是 0 到 127 之间(包括这个两数)的一个值,那么其字节表达就在 0x00000000 与 0x0000007f 之间(意味 着只有最低有效位字节包含有用的数据)。将这个整数造型为一个单字节时,只有最低有效位字节( 0x00 到 0x7f )会作为十六进制值拷贝到单字节数组。因此,如果长度值在 0 到 127 之间,那么我可 以只执行该长度与 0xff 之间的一个按位 AND 操作。这个操作会得到一个整数,它有效的最高 3 个字节 都将填入零。因此,我可以将按位操作的结果造型为一个字节,将这个字节放入一个单字节数组,并将这 个数组返回给调用应用程序。 如果长度值大于 127,那么我必须使用多字节长度表示法,它至少使用 2 字节数据。第一个字节表明 长度字节的字节数,后面是实际的长度字节(有关这种格式的详细解释请参阅 第一篇文章)。 如果长度值小于 256,那么就需要总共 2 个长度字节 ―― 1 个字节表明还有一个长度字节,1 个字 节包含 |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |