我正在编写一个使用sha256加密的Android应用程序。我尝试使用
String hash = Base64.encodeBase64String(sha256_HMAC.doFinal(message.getBytes()));
但我收到运行时错误java.lang.NoSuchMethodError: org.apache.commons.codec.binary.Base64.encodeBase64String
。我研究了这个问题,并且有人在堆栈上建议将android作为org.apache.commons.codec.binary.Base64
的旧版本实现,并且我正在使用的版本和android实现的版本之间存在冲突,以便为什么该方法{{1}找不到。这是我发现的帮助java.lang.NoSuchMethodError: org.apache.commons.codec.binary.Base64.encodeBase64String() in Java EE application的链接。解决方案是使用
Base64.encodeBase64String
我确实使用了它,它似乎工作但是因为我得到的东西与我正在使用的服务器所期望的不一致。我想知道这两者是否真的相同。
我使用此链接来实现sha256 http://www.jokecamp.com/blog/examples-of-creating-base64-hashes-using-hmac-sha256-in-different-languages/#java
这是我的代码我正在使用httpof方法调用的改造库:
String hash = new String(Base64.encodeBase64(sha256_HMAC.doFinal(data.getBytes("UTF-8"))));