为啥我的SHA-1不一样
Topic source用String.format():
System.out.println(String.format("%040x", new BigInteger("0004e473f59ab5bd4639f848dd8ed27f1b3f6b0d", 16))); // 0004e473f59ab5bd4639f848dd8ed27f1b3f6b0d
朋友们
System.out.println(String.format("%040x", new BigInteger("0004e473f59ab5bd4639f848dd8ed27f1b3f6b0d", 16))); // 0004e473f59ab5bd4639f848dd8ed27f1b3f6b0d
这里面%040x的意思是:最小的字符数为40 ,注意这不是总数,输出可以超过此宽度,若不足则会主动补“0”。%x在String.format里面是显示十六进制整数。
你们可以将**%040x改成%099x**试试就知道了。
System.out.println("注意看%#,#代表输出以0x开头,50是字符长度:" + String.format("%#50x", new BigInteger("0004e473f59ab5bd4639f848dd8ed27f1b3f6b0d", 16)));// 0004e473f59ab5bd4639f848dd8ed27f1b3f6b0d
刚看了看format方法,%040x,原来是格式化字符串的意思。
format(String format,object... args) 使用指定的格式字符串和参数返回格式化的字符串。
- 1
心有灵犀的小欣
但是我输出是:db8ac1c259eb89d4a131b253bacfca5f319d54f2
哈哈