对于服务器生成的和客户端生成的挑战,以下字符串是不同的:
+
->-
/
->_
=
->(空白处)
为什么我们需要做替换来解决这个问题?
源代码供参考。
对于服务器生成的和客户端生成的挑战,以下字符串是不同的:
+
->-
/
->_
=
->
(空白处)为什么我们需要做替换来解决这个问题?
源代码供参考。
看起来它是普通 Base64 编码和 Base64 URL 之间的区别,以及填充与无填充选项(尾随=
s)之间的区别。与前者相反,后者在 URL 中使用是安全的。另请参阅https://en.wikipedia.org/wiki/Base64#URL_applications
Webauthn 需要使用 Base64 URL 编码,而某些功能(例如 javascriptatob
或btoa
)使用纯 Base64 编码方案,因此需要从一种转换为另一种。