工作中有个需求,需要在Flink脚本请求线上的接口,Scala的代码中在访问参数中加上签名,so google了一个代码
object MD5 {
def hash(s: String) = {
val m = java.security.MessageDigest.getInstance("MD5")
val b = s.getBytes("UTF-8")
m.update(b, 0, b.length)
new java.math.BigInteger(1, m.digest()).toString(16)
}
}
用了一段时间发现经常出现验证签名不通过问题,经过排查发下遇到问题的都签名前几位是数字0的。

改正后的代码
object MD5 {
def hash(s: String) = {
val m = java.security.MessageDigest.getInstance("MD5")
val b = s.getBytes("UTF-8")
m.update(b, 0, b.length)
new java.math.BigInteger(1, m.digest()).toString(16).reverse.padTo(32, "0").reverse.mkString
}
}

8250

被折叠的 条评论
为什么被折叠?



