以下字符串对于服务器生成的质询和客户端生成的质询是不同的:
-
+
->-
-
/
->_
-
=
->(空白空间(
为什么我们需要做替代来解决这个问题?
用于参考的源代码。
-
webauthn.io
- https://webauthn.io/dist/js/webauthn.js
-
Jxck/jxck.io
- https://github.com/Jxck/jxck.io/blob/master/labs.jxck.io/webauthentication/fido-u2f/static/js/base64.mjs
看起来这是普通 Base64
编码和 Base64 URL 之间的区别,以及填充与无填充选项(尾随 atob
s(。与前者相反,后者在 URL 中使用是安全的。另请参阅 https://en.wikipedia.org/wiki/Base64#URL_applications
Webauthn需要使用Base64 URL编码,而某些函数(如javascript的btoa
或CC_9(是普通的Base64编码方案,因此需要从一个转换到另一个。