|
|
1
6
在一位同事的建议下,我选择了convert.tobase64string。很好用。修正了下面的程序。
|
|
2
1
问题在于到Unicode的转换以及加密方法encoding.unicode.getString的结尾,只有当您给它的字节构成有效的utf-16字符串时,它才起作用。 我怀疑有时候protectedData.protect的结果不是有效的utf-16字符串,因此encoding.unicode.getString会从返回的字符串中删除一些没有意义的字节,从而导致无法将字符串转换回加密数据。 |
|
|
3
1
最好的解决办法是 convert the byte array to a base 64 string . 您也可以使用拉丁语-1 aka iso-8859-1 aka codepage 28591来处理这个场景,因为它映射的值范围是0-255不变的。以下是可互换的:
使用此编码,您将始终能够转换字节[->字符串->字节[],而不会丢失。 见 this post 用于演示此编码用法的示例。 |
|
|
4
1
这门课应该有帮助:
|
|
5
1
你不应该使用
有关更多信息,请参阅 MS Security guru Shawn Fanning's post. |
|
6
0
我强烈怀疑是对encoding.unicode.getString的调用导致了这个问题。您需要确保传递给unprotect调用的数据是 确切地 与从保护调用返回的相同。如果您将二进制数据编码为Unicode文本作为临时步骤,那么您不能保证这一点。为什么您无论如何都需要这个步骤-为什么不只存储字节[]? |
|
|
xchrisbradley · 使用Zig签名对功能选择器进行编码 2 年前 |
|
|
Shirin Ebadi · 加载公钥字节作为DH密钥 2 年前 |
|
YoavKlein · 为什么jwt.io会给我私钥部分来填充? 2 年前 |
|
|
birb · RFC-6238 TOTP实现与示例不匹配 2 年前 |
|
|
Stefan N · 如何生成N个字符的所有字母数字组合[重复] 2 年前 |
|
|
xdivayze · 在线和离线客户端之间的打包密钥交换 2 年前 |