小编AC2*_*2MO的帖子

加密种子的Android设备/帐户特定ID

这可能是以前以多种形式提出过来的问题,但是我还没有看到它问过这个问题,我想对如何继续提出一些意见.

我正在开发一个应用程序,它需要将凭据存储到设备上的第三方Web服务.我希望加密这些凭据,但我也不希望将种子存储在设备上的代码/中以防止可能的劫持.该应用程序还支持使用Googles云备份功能进行备份,进一步需要加密.

我的想法是,如果我能找到一个唯一的标识符,那可以用作种子.有一些奇怪的要求使这很困难.

  1. 在所有情况下,对于给定的硬件/用户组合,ID必须是唯一的和相同的.
  2. 它不能简单地绑定到设备或用户,它必须是两者的组合.
  3. 必须提供无关紧要的东西; Wifi和蓝牙MAC地址是不可能的,因为它们在关闭时在某些设备上不可用.
  4. 根据我的阅读,TelephonyManager ID(SIM等)并非在所有设备上都可用.
  5. 根据我的阅读,ANDROID_ID将不会出现在任何情况下.
  6. 该应用程序将在多个市场(例如Amazon Appstore)发布,因此Google帐户不一定会出现.
  7. 进行工厂擦除不应影响用于生成此ID的任何内容(这样用户可以不间断地备份,擦除和恢复).
  8. 执行OTA升级不应影响用于生成此ID的任何内容(请参阅上述原因).
  9. 如果他们必须在卸载/重新安装后重新进行身份验证,这是可以的.

我明白这个值显然可以被其他应用程序检索,这就是为什么我打算哈希它,进一步播种应用程序UID以及<你的建议在这里>.

如果有人觉得这些要求不切实际,我也想听听.

特别是鉴于最近的黑客马拉松,我希望能够至少说"如果有人可以妥协,那么手机上没有任何东西是安全的".

encryption android user-experience uniqueidentifier

6
推荐指数
1
解决办法
1325
查看次数

如何在Android活动中居中主题背景图像

我浪费了大量的时间,而且我所看到的所有"答案"都没有用.基本上,我只想让一个位图在主题中水平居中,然后垂直重复.无论我做什么,它总是左对齐.我在代码和XML中尝试过它.这就是我现在正在使用的:

AndroidManifest.xml中

<activity android:name=".MyActivity" android:label="MyActivity"
        android:theme="@style/ThemeName" />
Run Code Online (Sandbox Code Playgroud)

RES /值/ styles.xml

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <style name="ThemeName" parent="android:Theme">
        <item name="android:windowBackground">@drawable/xml_bitmap</item>
    </style>
</resources>
Run Code Online (Sandbox Code Playgroud)

RES /抽拉/ xml_bitmap.xml

<?xml version="1.0" encoding="UTF-8"?>
<bitmap
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:src="@drawable/png_image"
    android:tileMode="repeat"
    android:gravity="center_horizontal"
/>
Run Code Online (Sandbox Code Playgroud)

为了帮助澄清,我还尝试在代码中将背景设置为位图,如下所示:

Resources r = getResources();
Drawable d = r.getDrawable(R.drawable.xml_bitmap);
getListView().setBackgroundDrawable(d);
Run Code Online (Sandbox Code Playgroud)

这给出了完全相同的结果; 让我相信xml_bitmap.xml文件中有问题.从我在文档中看到的内容来看,没有太多其他选项,我所拥有的SEEM是正确的:Drawable Resources

android android-layout

5
推荐指数
0
解决办法
2863
查看次数