程序流程
发送方- 生成加密密钥作为字节 [] 并向用户显示其Base64.encodeToString
值,然后将该字节 [](密钥)作为 udp 数据包发送给接收方
Receiver - 接收 UDP 数据包并获取密钥 (byte[]),并从用户获取密钥作为字符串(用户知道我在 Sender 程序中显示的字符串)并使用将接收到的密钥 (byte[]) 转换为字符串Base64.encodeToString
这是问题,当我使用equals
它比较两个字符串时返回 false
当我在 logcat 中打印两个字符串时
输出是
12-05 15:39:32.047:V/用户密钥(2210):oIAfhtGnf+tBX8NBB5ONVQ==
12-05 15:39:32.047: V/reckey(2210): oIAfhtGnf+tBX8NBB5ONVQ==
在这里您可以看到两个字符串具有相同的字符序列
重要的
我搜索了很多并开始了解contentEquals
,我也尝试了这个,希望它能解决我的问题,因为它只是比较两个字符串的字符和序列,但我无法让它工作,它对于这些字符串也返回 false。 ..
我从 EditText 中的用户那里得到字符串
txtDeKey.getText().toString()
并将 byte[] 转换为 String as (都尝试过)
Base64.encodeToString(key1, Base64.DEFAULT).toString()
Base64.encodeToString(key1, Base64.DEFAULT)