Hash 确定base64url编码字符串的长度
我正在尝试编写一个单元测试,以检查是否正确地对字符串(实际上是PEM证书)进行哈希和编码 我正在做的是:Hash 确定base64url编码字符串的长度,hash,encoding,base64url,Hash,Encoding,Base64url,我正在尝试编写一个单元测试,以检查是否正确地对字符串(实际上是PEM证书)进行哈希和编码 我正在做的是: 获取证书(PEM格式) 将其转换为DER 对其运行哈希函数以获取哈希值(SHA-1/SHA-256) Base64Url对哈希进行编码 SHA-256散列的值具有恒定长度(256位)。这可以用不同的方式表示(十六进制/二进制等),但下面是相同的。我将值存储在Java字节数组中 我的问题是:如果我尝试对这个散列字节数组值进行base64url编码,那么得到的编码字符串的长度是否总是相同的?或者
我不清楚的是“base64url”编码的“url”部分:因为它使字符串对于url是安全的,所以它是否进行了任何类型的字符扩展(例如,urlencoding将单个空格字符替换为三个字符的%20).Base64Url编码就是简单的Base64编码,其中+和/切换为两个不同的字符,更适合放入Uri
由于SHA-256始终是相同的固定长度,因此base64编码的SHA-256哈希也将是相同的固定长度。每个base64位为6位。由于256/6不是整数,您将得到一些填充字符('='),但字符串的长度始终相同。谢谢Broam。Base64Url编码规范: