Android 下的java.security和windows下的不一样?
2010-01-28 14:42
453 查看
前端时间要把一个signjar的类移到android中,来给apk文件签名,这样就可以在android系统中生成apk文件。windows下的JDK中的signjar的类使用的是sun.security包,而android提供的加密相关的包是bouncycastle,加密相关的知识短时间内学不了,最快的办法还是把桌面环境下sun.security里面的包移植到android中使用。
改完能跑,但是算出来的数据总是不对。开始以为是sun.security里面的一些算法在android里面有问题,就一直跟下去记log信息,跟了几天后赫然发现是java.security.MessageDigest类对一段数据进行SHA1加密的结果和windows环境下不一致。于是去网上找了SHA1的算法,替换掉MessageDigest来计算,得到的结果和windows环境下一致,并最终可以正确执行signjar。
也许是android里面的security包要配合自己的bouncycastle才能正确使用?
改完能跑,但是算出来的数据总是不对。开始以为是sun.security里面的一些算法在android里面有问题,就一直跟下去记log信息,跟了几天后赫然发现是java.security.MessageDigest类对一段数据进行SHA1加密的结果和windows环境下不一致。于是去网上找了SHA1的算法,替换掉MessageDigest来计算,得到的结果和windows环境下一致,并最终可以正确执行signjar。
也许是android里面的security包要配合自己的bouncycastle才能正确使用?
相关文章推荐
- Android FTP ftpClient.listFiles()报java.lang.ClassNotFoundException: Didn't find class "Windows_NT"
- [Android测试] Android Studio+Appium+Java+Windows 自动化测试之二:Appium环境安装搭建
- Windows和Ubuntu平台Android +JAVA 环境搭建
- 【Android】java.lang.SecurityException: getDeviceId: Neither user xxxxx nor current process has andro
- {转载}同样的面试题,Android的答案和JAVA的不一样
- 关于Android抛出java.lang.SecurityException: Permission Denial的错误
- Android---java.lang.SecurityException: Permission Denial: getTasks() from p
- Appium :Windows 平台上的使用 Java 语言实现 appium 自动化程序 for Android
- windows上react-native run-android时Exception in thread "main" java.lang.IllegalArgumentException: MALFORMED报错
- 在Windows上搭建Android的JAVA开发环境图文教程(Eclipse版本)
- 在Windows上搭建Android的JAVA开发环境图文教程(Eclipse版本)
- Caused by: java.lang.SecurityException: Permission Denial: not allowed to send broadcast android.int
- Windows和Ubuntu平台Android +JAVA 环境搭建
- ERROR/AndroidRuntime(716): java.lang.SecurityException: Binder invocation to an incorrect interface
- java 在windows环境 android环境 linux环境对7z包的解压缩
- Android java.lang.SecurityException: Permission Denial: requires android.permission.CALL_PRIVILEGED
- Caused by: java.lang.SecurityException: Permission Denial: not allowed to send broadcast android.intent.action.HEADSET_PLUG
- java.lang.SecurityException: Requires android.permission.MOUNT_UNMOUNT_FILESYSTEMS permission
- Android 开发之错误整理java.lang.SecurityException: Requires READ_PHONE_STATE: Neither user 10088 nor current process has android.permission.READ_PHONE_STATE.
- Windows 平台上的使用 Java 语言实现 appium 自动化程序 for Android(完整版)