JS加密/解密那些必须知道的事儿

QQ截图20230814102649.png

一直以来,字符串的编码问题对于新手程序员来说,或者平常不太涉猎这方面的程序员来说,是犹如灵异学一样的存在。经?;嵊龅侥涿畹谋嗦胛侍猓贾碌母髦值奈薹ɡ斫獾拇砦?。

今天,本问就来介绍一下作者所知晓的一切的字符编码知识。

0x1.初识ASCII

说起字符串编码,不得不说到现代计算机的起源,在二十世纪早期,美国的科学家和工程师开始研究并开发原始的计算机设备。一些早期的计算机设备和概念都是在美国发展的,为后来的计算机技术的发展奠定了基础。

因此最早的计算机主要编码都是为了适应英文来设计的,英文由字母、数字、标点符号等组成。总计26个英文字母(不区分大小写)、10个数字(0-9)、大约32个常见标点符号(包括空格)
123.gif

0x2.随着更多国家加入互联网,兼容语言日益重要

随着国际化的发展和不同国家语言的日益重要,需要一种能够表示更多字符的编码方式。因此,针对不同的需求,出现了一些扩展字符集和编码标准,其中两个最常见的是GBK和UTF-8。

  • GBK 是汉字内码扩展规范的简称,是在ASCII基础上的汉字编码扩展。它对中文进行了编码,并能够表示超过 20000 个中文字符。它兼容ASCII编码,并使用1个或2个字节来表示一个字符,使得它能够包含更多的字符。

    • 基本原理
      • GBK编码使用单字节编码和双字节编码混合的方式来表示字符。
      • 对于ASCII字符,使用单字节表示,编码和ASCII兼容。
      • 对于非ASCII字符(包括汉字等),使用双字节表示。
    • 编码范围
      • 单字节编码范围:0x00-0x7F,与ASCII相同。
      • 双字节编码范围:0x81-0xFE,两个字节的第一个字节在0x81-0xFE之间,第二个字节在0x40-0xFE之间(但不包括0x7F)。
    • 占位个数
      • 对于单字节编码的ASCII字符,占用一个字节(8位)。
      • 对于双字节编码的非ASCII字符,占用两个字节(16位)。
    • 编码规则
      • 对于双字节编码,第一个字节的范围确定了该字符的编码区,第二个字节的范围则确定了具体的字符。
      • GBK编码的中文字符通常使用两个字节表示,第一个字节的范围是0x81-0xFE,第二个字节的范围是0x40-0xFE(不包括0x7F)。
      • 例如,汉字“中”在GBK编码中的值是0xD6D0。
    • 兼容性
      • GBK编码是对GB2312编码的扩展,因此GB2312编码的中文字符在GBK中仍然能够正确解码。
      • 同时,GBK编码也与ASCII编码兼容,保证了在同一个文本文件中可以混合使用ASCII字符和汉字字符。
  • UTF-8 是一种针对Unicode的可变长度字符编码,它被设计用来在互联网上处理多种语言的文本。UTF-8 使用1至4个字节为每个字符编码,能够表示地球上几乎所有的文字。它是一种广泛使用的编码标准,可以表示包括拉丁字母、希腊字母、西里尔字母、亚美尼亚字母、希伯来字母、阿拉伯字母、叙利亚字母、泰米尔字母等在内的几乎所有的语言的字符。

    • 基本原理
      • UTF-8 使用 8 位字节序列来表示一个 Unicode 字符。
      • UTF-8 根据所表示的字符的不同范围,使用不同长度的字节序列表示字符。
    • 编码范围
      • 单字节编码范围:0x00-0x7F,与 ASCII 编码完全兼容。
      • 双字节编码范围:0xC2-0xDF,0x80-0xBF。
      • 三字节编码范围:0xE0-0xEF,0x80-0xBF,0x80-0xBF。
      • 四字节编码范围:0xF0-0xF4,0x80-0xBF,0x80-0xBF,0x80-0xBF。
    • 占位个数
      • 对于单字节编码的 ASCII 字符,占用一个字节(8 位)。
      • 对于多字节编码的 Unicode 字符,根据其在 Unicode 编码中的范围,使用 2 到 4 个字节(16 到 32 位)。
    • 编码规则
      • 对于单字节编码的 ASCII 字符,其最高位是 0。
      • 对于多字节编码的 Unicode 字符,每个字节的最高位都是 1,紧跟着的一个 0 位表示该字节不是编码的最后一个字节。

    关于了解这些字符编码特性的好处

    常见的可用于JS的加密/解密,不同字符编码之间的转换等特性都可以用于JS加密,同样可以用于JS逆向的逻辑中。

最后编辑于
?著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,128评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,316评论 3 388
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事?!?“怎么了?”我有些...
    开封第一讲书人阅读 159,737评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,283评论 1 287
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,384评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,458评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,467评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,251评论 0 269
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,688评论 1 306
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,980评论 2 328
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,155评论 1 342
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,818评论 4 337
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,492评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,142评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,382评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,020评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,044评论 2 352

推荐阅读更多精彩内容

  • 1. ASCII 编码 ASCII(American Standard Code for Information ...
    s酸菜阅读 8,674评论 0 8
  • 在软件的编码和实现中,我们可能会碰到个一个比较头疼的问题--编码,不同字符间的编码和解码,你确定了解各种字符的编码...
    Java小铺阅读 2,513评论 0 5
  • 编码有两个大类:非Unicode编码:ASCII、SO 8859-1、Windows-1252、GB2312、GB...
    Newzer阅读 444评论 0 1
  • 1、字符串的编码、解码 编码:将计算机中的字符串按照一定的顺序表示成二进制数据的过程 各国字符编码都不一样:1、计...
    寻水的_鱼阅读 2,119评论 0 0
  • [toc] 常见编码 1.ASCII编码 ASCII编码大致可以分作三部分组成: 第一部分是:ASCII非打印控制...
    William92阅读 3,988评论 0 1