我正在使用一些示例java代码来制作md5哈希.一部分将结果从字节转换为十六进制数字的字符串:
byte messageDigest[] = algorithm.digest();
StringBuffer hexString = new StringBuffer();
for (int i=0;i<messageDigest.length;i++) {
hexString.append(Integer.toHexString(0xFF & messageDigest[i]));
}
Run Code Online (Sandbox Code Playgroud)
但是,由于toHexString显然会从前导零中掉落,所以它并不常用.那么,从字节数组到保持前导零的十六进制字符串的最简单方法是什么?
我在应用程序中有一个服务,我可以从不同的应用程序中获得此服务.当尝试绑定此服务的应用程序时,我想知道哪个应用程序试图在onBind函数中绑定我的服务,但我无法在onBind函数中获取此应用程序的包名称或UID.
是否可以获取试图在onBind函数中绑定我的服务的应用程序名称或UID?
我正在尝试决定将存储在手机上的加密内容暴露给第三方应用的最佳方法.内容非常敏感,需要加以保护,因此只有特定应用才能访问此内容.我正在研究的方法是IPC和内容提供商.以下是我认为是我的情况的一些赞成和反对意见.
IPC - 专业版
IPC - Con's
实现比Content Provider更复杂
必须编写自己的方式来保护对内容的访问.
内容提供商 - 专业版
易于实施
通过提供者定义权限轻松保护访问:protectionLevel = signature
内容提供商 - Con's
为了保护访问权限,Content Provider的密钥签名必须与第三方应用程序共享,这是不理想的.
返回的结果类型的灵活性有限.Content Provider仅返回查询列的Cursor对象.
性能和电池有什么重大差异吗?
可以异步执行吗?
对列表有任何其他意见/建议吗?