- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
前言:使用 Android Studio 并将我的“Hello World”应用程序推送到手机上时,我看到了如下所示的确认对话框:
Allow USB debugging?
The computer's RSA key fingerprint is:
<some_md5_fingerprint>
[] Always allow from this computer
CANCEL OK
虽然我很确定是我的机器在尝试连接,但我问自己如何确认这一点。
这引发了另外两个具体问题
:此外,我想要一个广泛使用的答案,以便每个 Windows(在我的例子中是 win7)用户都可以使用该解决方案,而无需安装软件。
最佳答案
我正在使用 cmd
及其 for
循环以及 certUtil
,它们应该都已预先安装。
打开cmd
cmd
然后确认,或者cmd.exe
并执行。TLDR
for /F "tokens=2" %a in (id_rsa.pub) DO (echo %a) > tmp.key_base64
certUtil -decode tmp.key_base64 tmp.key_bytes
certUtil -hashfile tmp.key_bytes MD5
RSA 公钥在哪里?
通常 key 保存在用户家下的.ssh
目录中。
(Android Studio 存储了不同的(!) key ,adbkey.pub
,在用户主目录下的目录 .android
及其安装目录中,这里是 C:\Android\.android
- 在上面序言中提到的过程中,两个 key 都被发送到手机。)
打开控制台后,你应该已经在你的主目录中,只需要更改为 .ssh
C:\Users\%USERNAME%>cd .ssh
如果您不在您的主目录类型中
cd \Users\%USERNAME%\.ssh
并执行。
(对于 Android Studio,将目录分别更改为 \Users\%USERNAME%\.android
或 \Android\.android
。)
如何获取 RSA 公钥的 MD5 指纹?
为此我需要知道文件中的实际 key 是 base64 编码的部分,即 long cryptic string of characters .在我的例子中,key 字段 后面总是跟着一个 user-host 字段,即像 user@domain.com
这样的字符串(也 unknown@unknown
),在某些情况下,前面有一个包含 ssh-rsa
的字段。
在后一种情况下,我需要过滤第二个字段。在 Windows 中,显然,这是使用 for
循环完成的。我还将输出发送到一个文件,供 certUtil
进行后续消化,它的输出再次进入一个文件 - 包含的 key 不再使用 base64 编码,而是以字节为单位 - 最后使用 MD5 进行哈希处理。
将我的 id_rsa.pub
的第二个字段中的 key 提取到名为 tmp.key_base64
的文件中:
for /F "tokens=2" %a in (id_rsa.pub) DO (echo %a) > tmp.key_base64
(Android Studio adbkey.pub
的第一个字段:"tokens=1"
)
Base64 解码以接收文件 tmp.key_bytes
中的实际公钥:
certUtil -decode tmp.key_base64 tmp.key_bytes
使用 MD5 散列 key :
certUtil -hashfile tmp.key_bytes MD5
关于windows - 如何在 Windows 上获取 RSA 公钥的 MD5 指纹?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48992472/
我是一名优秀的程序员,十分优秀!