1

程序流程

发送方- 生成加密密钥作为字节 [] 并向用户显示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)
4

0 回答 0