当前位置: 首页 > news >正文

代理机构做的网站找不到人了怎么办私活做网站

代理机构做的网站找不到人了怎么办,私活做网站,南宁网页设计,dw用设计视图做网站双因素认证#xff08;Two-Factor Authentication, 2FA#xff09;扮演着至关重要的角色。它像是一道额外的防线#xff0c;确保即便密码被窃取#xff0c;不法分子也难以轻易突破。在众多双因素认证技术中#xff0c;基于时间的一次性密码#xff08;Time-Based One-Tim…双因素认证Two-Factor Authentication, 2FA扮演着至关重要的角色。它像是一道额外的防线确保即便密码被窃取不法分子也难以轻易突破。在众多双因素认证技术中基于时间的一次性密码Time-Based One-Time Password, TOTP算法因其安全性高、使用便捷而受到广泛应用。 TOTP算法是一种基于时间的一次性密码生成算法它的核心思想是利用时间作为变化的因子来生成动态的密码。这种算法通常与用户的个人信息结合使用如用户名或电子邮件地址以及一个共享的秘密密钥。这个秘密密钥在用户端和服务端预先共享是生成正确OTP的关键。 TOTP是如何工作的呢 让我们通过一个简单的比喻来理解其原理。想象一下你有一本只属于你和你的朋友的书书中记载了一连串的故事每个故事都有一个编号。每当你想要和朋友传递一个秘密信息时你会查找当前日期对应的故事编号并从中选取特定的段落来传递信息。在这个例子中书就像是秘密密钥故事编号对应于时间戳而传递的信息则是一次性密码。 具体到TOTP算法它使用了哈希函数如SHA-1、SHA-256等和时间戳。当用户想要登录系统时用户的设备会计算当前时间与预设时间步长的差值然后将这个差值与共享的秘密密钥一起输入到哈希函数中。哈希函数处理后输出一串较长的二进制数据这串数据再经过模运算得到一个较短的数字这个数字就是OTP。用户需要在规定的时间内将这个OTP输入到验证系统中系统同样会根据相同的秘密密钥和时间差值计算出一个OTP并与用户提供的OTP进行比对若两者一致则认证成功。 在实现上TOTP算法需要考虑到时间同步的问题。由于网络延迟或者设备时钟不准确可能导致用户设备与服务器之间的时间有偏差。因此TOTP算法通常会有一个时间窗口如30秒允许在这个时间范围内的OTP都是有效的。 TOTP的优势在于其安全性和用户体验。由于OTP是基于时间和共享秘密密钥生成的即使黑客截获了某个时刻的OTP它也无法在其他时间点使用因为OTP每隔一段时间就会变化。此外用户可以不需要记忆复杂的密码只需拥有注册时分配的密钥通常存储在硬件令牌或软件应用中就可以轻松完成身份验证。 TOTP的实现 Base32编码与解码 Base32编码原理 Base32编码是一种将二进制数据转换成32种可打印字符的编码方式。它主要用于电子邮件和URL中传输二进制数据。Base32使用A-Z的大写字母不使用C, E, G, I, O, Q, U, V和数字2-7来表示数据。每8位二进制数据可以编码为5个Base32字符这意味着编码后的数据长度是原始数据的大约1.33倍。 实现Base32编码 编码过程涉及将输入的字节数据分成5位一组每组转换为对应的Base32字符。例如如果输入字节是0x9A它对应于二进制的10011010然后将其分成两组1001和1010。每组转换为Base32字符分别是S和K。 实现Base32解码 解码过程与编码相反它将Base32字符转换回原始的字节数据。解码函数需要处理输入的Base32字符串跳过任何非Base32字符如填充的等号并将每个字符转换回相应的5位二进制值。然后这些值被重新组合成字节数据。 HMAC-SHA1算法 HMAC-SHA1基本概念 HMACHash-based Message Authentication Code是一种消息认证码它使用哈希算法如SHA-1和密钥来提供消息的完整性保护和认证。SHA-1是一种广泛使用的加密哈希函数它可以产生一个160位20字节的哈希值。 在TOTP中的应用 在TOTP中HMAC-SHA1用于生成一个基于密钥、时间戳和算法参数的哈希值。这个哈希值随后被用来生成6位数的一次性密码。通过使用HMAC-SHA1TOTP确保了即使密钥被泄露生成的密码也难以被预测。 时间戳处理 时间戳的重要性 TOTP算法依赖于时间戳来生成密码因此时间同步至关重要。如果客户端和服务器之间的时间不同步生成的密码可能会无效。 确保时间同步 为了确保时间同步可以采取以下措施 使用网络时间协议NTP来同步客户端和服务器的时间。在用户设备上设置时间校验机制确保时间偏差在可接受范围内。 密码生成逻辑 从HMAC-SHA1输出中提取密码 使用HMAC-SHA1算法和当前时间戳生成一个20字节的哈希值。对哈希值进行处理提取出用于生成密码的部分。具体来说取哈希值的最后一个字节的最低4位作为索引从这个位置开始读取接下来的4个字节。将这4个字节视为一个整数然后对1000000取模得到一个6位数的密码。 生成6位数的密码 将上述步骤得到的整数转换为字符串形式并确保它是一个6位数的密码。如果需要可以在前面补零。 TOTP 算法实现双因素认证的基石(C/C代码实现) 双因素认证2FA作为一种增强安全性的方法应运而生。基于时间的一次性密码TOTP是2FA的一种实现方式它提供了一种动态生成、一次性使用的密码极大地提高了账户的安全性。下面实现类似Google Authenticator这样的应用程序。 void hmac(void *dest,const void *key,uint32_t key_len,const void *msg,uint32_t msg_len,void (*hash)(char *dest, const char *str, int len),uint16_t block_size,uint16_t output_size ); typedef struct {uint32_t state[5];uint32_t count[2];unsigned char buffer[64]; } SHA1_CTX;void sha1_transform(uint32_t state[5], const unsigned char buffer[64]); void sha1_init(SHA1_CTX * context); void sha1_update(SHA1_CTX * context, const unsigned char *data, uint32_t len); void sha1_final(unsigned char digest[20], SHA1_CTX * context); void sha1(char *hash_out, const char *str, int len); void bytes_array_reverse(uint8_t* bytes, int size); int bytes_array_to_int(const uint8_t* bytes, int start, int end); int base32_decode(const uint8_t *encoded, uint8_t *result, int bufSize); char* str_upper(char* str); char* str_pad_left(char* str, char pad, int len); char* str_pad_right(char* str, char pad, int len); int int_to_str(int i, char *buf, int buf_len);void get_2fa_code(char *secret, char code[7]) {char key[20];char hash[20];int key_len;uint64_t msg;str_upper(secret); //转换为大写以获得有效的Base32格式key_len base32_decode((uint8_t*)secret, (uint8_t*)key, 20); // 将机密解码为字节数组msg time(NULL) / 30; // TOTP是HOTP种子为30秒。bytes_array_reverse((uint8_t*)msg, 8); hmac(hash, key, key_len, (uint8_t*)msg, 8, sha1, 64, 20); // 生成hmac哈希int offset hash[19] 0xF; int header bytes_array_to_int((uint8_t*)hash, offset, offset 4); // 从偏移量开始截断4个字节header header 0x7fffffff; // 删除最高有效位header header % 1000000; // 生成小于7位的余数int_to_str(header, code, 7); // 将代码转换为字符串str_pad_left(code, 0, 6); // 从左起用0填充代码直到代码长度为6 } int main(int argc, char **argv) { ...if (argc ! 2) {printf(./ga [secret]\n);return (0);}get_2fa_code(argv[1], code);printf(Code :\n%s\n, code);return (0); } 运行结果 If you need the complete source code, please add the WeChat number (c17865354792) 总结 Google Authenticator 的核心原理是利用共享密钥和一个随时间变化的因子来生成一次性密码从而实现第二因素的身份验证。这种方法既方便又安全因为它不需要额外的硬件令牌只需要用户的智能设备即可。此外由于 OTP 是一次性的并且随时间变化即使黑客截获了当前的 OTP也无法在未来的时间点使用它来冒充用户。 We also undertake the development of program requirements here. If necessary, please follow the WeChat official account 【程序猿编码】and contact me
http://www.hkea.cn/news/14428327/

相关文章:

  • 国外源代码下载网站中企中立做的网站好吗
  • 做电影网站解决版权问题市场推广计划书
  • wordpress 不显示缩略图哈尔滨网络优化工程师
  • 四川住房建设和城乡建设厅网站买域名要多少钱一个
  • 对做网站公司的疑问蓝牙app开发软件
  • 江北网站建设价格网页设计培训有工资吗
  • 网站建设维护员是做什么的seo快速排名软件
  • 如何看网站有没有备案小程序获取wordpress背景音乐
  • 阜宁专业做网站的公司wordpress修改网页端口
  • 电子政务网站建设实践报告郑州网络推广哪家口碑好
  • 营销最好的网站建设公司电子商务网站建设需要学什么软件
  • 手机网站大全排行北京网站设计公司yy成都柚米科技15
  • 做ppt的模板的网站有哪些内容商城网站建设方案
  • 电子商务网站平台建设方案网站服务器容量
  • 网站流量查询平台商城网站策划书
  • 企业网站群建设方案电商运营一般要学多久
  • 做平台的网站有哪些内容光明区住房和建设局网站
  • 给人家做网站服务器自己搭吗html教程推荐
  • 甘肃省交通建设项目招投标中心网站网站开发合作合同
  • 做视频在哪个网站找素材怎么制做网站
  • 降低做百度手机网站优化点
  • 好的网站建设公司杭州网站公司哪家服务好
  • 中国能源建设股份有限公司新网站园区门户网站建设
  • 用python做 网站论坛三原网站建设
  • 网站建设功能介绍保定网站建设的过程
  • 十堰百度网站建设c 转网站开发
  • 有没有什么排版的网站基于 wordpress
  • 做模型找三视图那些网站如何利用网络广告进行推广
  • 天水建设银行网站青海公路建设信息服务网站
  • 化工网站建站模板下载免费制作音乐的软件app