Google Authenticator(谷歌身份验证器)在苹果手机上IOS系统中 输入密钥时提示密钥无效的解决方案
今天做了一个谷歌身份证器 一次性密钥,在安桌手机上都没问题,但客户把密钥在苹果手机IOS系统时提示 :提示密钥无效
如密钥如下
ABSGIYLENVUW4QDHNVQWS3BOMNXW2===
此密钥在安卓系统可以添加,在IOS系统上提示无效,经百度,原来是两个系统对一些编码解析不一样导致的。
原文如下:
I was having the same issue as above. It turns out that Google Authenticator doesn't like = signs in the IPhone App, but doesn't complain in Android.
In my case I increased the length of the string before encoding to base32 from 8 chars to 10 chars. This removed the three === at the end of the string. I found this online as to why = signs appear in base32 encoded strings:
意思是苹果系统IOS对===不识别,解决办法,把它去了就行了,去了符号"==="并不影响密钥的使用。“=”此符号只是为了格式化用的,大多情况下无意义,可以去了。
Base32将任意字符串按照字节进行切分,并将每个字节对应的二进制值(不足8比特高位补0)串联起来,按照5比特一组进行切分,并将每组二进制值转换成十进制来对应32个可打印字符中的一个。
由于数据的二进制传输是按照8比特一组进行(即一个字节),因此Base32按5比特切分的二进制数据必须是40比特的倍数(5和8的最小公倍数)。例如输入单字节字符“%”,它对应的二进制值是“100101”,前面补两个0变成“00100101”(二进制值不足8比特的都要在高位加0直到8比特),从左侧开始按照5比特切分成两组:“00100”和“101”,后一组不足5比特,则在末尾填充0直到5比特,变成“00100”和“10100”,这两组二进制数分别转换成十进制数,通过上述表格即可找到其对应的可打印字符“E”和“U”,但是这里只用到两组共10比特,还差30比特达到40比特,按照5比特一组还需6组,则在末尾填充6个“=”。填充“=”符号的作用是方便一些程序的标准化运行,大多数情况下不添加也无关紧要,而且,在URL中使用时必须去掉“=”符号。
扩展知识
Base32编码是使用32个可打印字符(字母A-Z和数字2-7)对任意字节数据进行编码的方案,编码后的字符串不用区分大小写并排除了容易混淆的字符,可以方便地由人类使用并由计算机处理。
值 | 符号 | 值 | 符号 | 值 | 符号 | 值 | 符号 | |||
---|---|---|---|---|---|---|---|---|---|---|
0 | A | 8 | I | 16 | Q | 24 | Y | |||
1 | B | 9 | J | 17 | R | 25 | Z | |||
2 | C | 10 | K | 18 | S | 26 | 2 | |||
3 | D | 11 | L | 19 | T | 27 | 3 | |||
4 | E | 12 | M | 20 | U | 28 | 4 | |||
5 | F | 13 | N | 21 | V | 29 | 5 | |||
6 | G | 14 | O | 22 | W | 30 | 6 | |||
7 | H | 15 | P | 23 | X | 31 | 7 | |||
填充 | = |
Base32将任意字符串按照字节进行切分,并将每个字节对应的二进制值(不足8比特高位补0)串联起来,按照5比特一组进行切分,并将每组二进制值转换成十进制来对应32个可打印字符中的一个。
Google Authenticator(谷歌身份验证器)在苹果手机上IOS系统中 输入密钥时提示密钥无效的解决方案相关推荐
- 使用google authenticator(谷歌身份验证器)打造用户登录动态口令
google authenticator php 服务端 使用php类 直接下载 https://github.com/PHPGangsta/GoogleAuthenticator/raw/maste ...
- Google authenticator 谷歌身份验证,实现动态口令
Google authenticator 谷歌身份验证,实现动态口令 google authenticator php 服务端 使用PHP类 require_once '../PHPGangsta/G ...
- 如何为SSH登录建立双因子验证机制(谷歌身份验证器)?
前言 默认情况下,SSH已经在远程机器之间使用安全的数据通信;但是如果你想为自己的SSH连接添加另外某种安全层,可以添加谷歌身份验证器(Google Authenticator)双因子验证模块,该模块 ...
- 【SpringBoot】61、SpringBoot中使用谷歌身份验证器(Google Authenticator)实现二步身份验证
Google 身份验证器 Google Authenticator 是谷歌推出的基于时间的一次性密码 (Time-based One-time Password,简称 TOTP),只需要在手机上安装该 ...
- 使用C++实现谷歌身份验证器(Google Authenticator)
使用C++实现谷歌身份验证器(Google Authenticator) 本机环境: windows10 x64位运行环境 1.进入网站:http://slproweb.com/products/Wi ...
- 使用谷歌身份验证器(Google Authenticator)保护你的后台
为何要使用谷歌身份验证器 普通的网站只使用账号.密码.图形验证码进行后台登录.根据我(作为站长)多年的经验来看,这种方式安全性很低,尤其是使用 http 协议,明文的帐号和密码相当于在网络上裸奔.如果 ...
- Google Authenticator windows client 谷歌身份验证器 windows 电脑端
谷歌身份验证器现在有安卓客户端和ios客户端,本人开发了一个windows客户端,基于 .NETFramework v4.7 开发,已在 github 上开源,可以在 github 上直接下载. gi ...
- 使用谷歌身份验证器增强SSH安全
一般大家都是使用账号和密码远程SSH登录管理服务器.但SSH账号和密码很容易泄露,或者经常遭遇暴力破解.咨询过前同事赛赛,他们目前使用了谷歌身份验证器.查看了谷歌身份验证器的github和其它网上文档 ...
- 二次验证码小程序与谷歌身份验证器不同点是?
名称1[二次验证码]小程序 名称2 谷歌身份验证器(Google Authenticator) 粗略对比两个产品异同 [二次验证码]小程序 搜索:微信搜索.微信目前65个小程序入口,倒是容易找到它 使 ...
- 谷歌身份验证器代码实现
手机下载谷歌身份验证器,无需联网也可以用. 工具类 public class GoogleAuthenticator{// 生成的key长度( Generate secret key length)p ...
最新文章
- 艾伟:正则表达式30分钟入门教程
- 【Irrlicht鬼火引擎】 安装配置Irrlicht鬼火引擎
- Loadrunner中socket协议中的三个关联函数
- P3246 [HNOI2016]序列 莫队 + ST表 + 单调栈
- 使用Javaslang进行Java 8中的函数式编程
- cockroachdb mysql_CockroachDB学习笔记——[译]CockroachDB中的SQL:映射表中数据到键值存储...
- html 流程控制,HTML5独家分享:原生JS学习笔记2——程序流程控制
- 高可用集群原理概念详述
- mt3dgis 视频教程
- 怎样运行python_怎样运行python
- 数学建模——数据包络分析步骤及程序详解
- 【 jvm-sandbox-repeater】环境搭建部署
- Mesos-安装和使用
- 安卓一键清理内存_雨点清理app下载-雨点清理官方版下载v1.0
- 生活污水处理厂工程脱水车间设计、果汁饮料厂工艺流程及车间平面布置CAD设计、水处理车间工艺图、氯乙烯分离车间平面布置图、乳品车间设备布置图、核桃乳饮料厂工艺流程及车间平面布置CAD设计……
- 【操作系统】判断题汇总大全
- linux服务器被挖矿的解决办法
- uniapp——漂亮的按钮,圆角view,渐变色view,圆角边框view,点击效果波动、点击放大效果
- 【ROS】2.2 信息、类和服务器
- 关于我国电子商务立法的思考
热门文章
- Spring @Value 用法
- 解决:tomcat部署遇到问题:One or more Filters failed to start. Full details will be found in the appro
- 如何完整删除Windows.old(详细教程)
- Java实现手机登录功能
- 2015关于第十一届蓝狐网络杯湖南省大学生计算机程序设计竞赛的总结
- biostar handbook(十一)|基因组变异的表示形式
- base64和jpg/png互转
- Unity笔记之UGUI Text首行缩进、改变文本颜色、文本间距调节
- Android 获取应用「唯一标识符」——DeviceID「兼容android 10(Q)」
- DP转HDMI方案|CS5216方案应用|CS5216设计方案