精华内容
下载资源
问答
  • 终于可以光明正大的水一篇文章了。还是老规矩,本文重要部分就是文章结尾的代码,路过的大佬...有读者找到我想问问关于AES加密的 Python 实现应该怎么写,听到这个需求我第一时间是拒绝的对,就是这么真实,毕竟我是...

    终于可以光明正大的水一篇文章了。

    还是老规矩,本文重要部分就是文章结尾的代码,路过的大佬不想听咸鱼唠嗑的直接划到结尾拿代码就好了,记得点赞,宝贝。

    先讲讲为什么写这篇文章,就是昨天分析了某服务平台的加密数据分析,果不其然炸了不少小白读者,老夫甚是欣慰。

    于是,在孤寂的深夜。

    有读者找到我想问问关于AES加密的 Python 实现应该怎么写,听到这个需求我第一时间是拒绝的

    f5ab647c61df1d3414baa9b0ce564d96.png

    对,就是这么真实,毕竟我是咸鱼,能 BB 绝对不会动手的

    a342f754625fd1c5f682b849faf5963e.png

    但是,毕竟读者爸爸都是磨人的小妖精,所以我屈服了。

    之后我就打开了某个不可描述的网站开始找资源

    640?wx_fmt=png

    果然,找到了不少关于 AES 加密的文章,不过看文章的日期基本是2017-2019的居多。

    而且这里一定要提一句,Python 的 PyCrypto 已死,现在用 Python 实现加密常用的是PyCryptodom

    PyCryptodom可以使用下面这句命令安装

    pip3 install pycryptodome 
    # pip3 install -i https://pypi.douban.com/simple pycryptodome 

    然后不停使用 CV 大法调试网上的代码,不得不吐槽一句,C*DN 网站真的垃圾,十篇文章有九篇文章雷同。

    3ad83e2b0b1a39b33a9c7bc9ac7d2239.png

    先看下关于pycryptodome的用法

    from Crypto.PublicKey import RSA
    from Crypto.Signature import PKCS1_v1_5
    from Crypto.Hash import SHA256
    from Crypto.Cipher import AES

    如果有尝试过用 Python 实现的朋友一定遇到过下面的报错

    TypeError: Object type 'str'> cannot be passed to C code

    这个报错的解决办法非常简单,但是昨晚没有找到原因的时候真的和噩梦一样

    最后在stackoverflow找到了处理办法,大家可以去围观下

    https://stackoverflow.com/questions/50302827

    处理办法也很简单,encode就行了

    obj = AES.new('This is a key123'.encode("utf8"), AES.MODE_CBC, 'This is an IV456'.encode("utf8"))

    解决了这个问题之后,之后就是通畅无阻了

    这里直接给出AES-CBC两种输出的代码,以下代码的加解密结果与http://tool.chacuo.net/cryptaes相同。

    AES-CBC 输出 Hash 的示例代码

    from Crypto.Cipher import AES
    from binascii import b2a_hex, a2b_hex


    class PrpCrypt(object):
        def __init__(self, key):
            self.key = key.encode('utf-8')
            self.mode = AES.MODE_CBC

        # 加密函数,如果text不足16位就用空格补足为16位,
        # 如果大于16当时不是16的倍数,那就补足为16的倍数。
        def encrypt(self, text):
            text = text.encode('utf-8')
            cryptor = AES.new(self.key, self.mode, b'0123456789ABCDEF')
            # 这里密钥key 长度必须为16(AES-128),
            # 24(AES-192),或者32 (AES-256)Bytes 长度
            # 目前AES-128 足够目前使用
            length = 16
            count = len(text)
            if count             add = (length - count)
                # \0 backspace
                # text = text + ('\0' * add)
                text = text + ('\0' * add).encode('utf-8')
            elif count > length:
                add = (length - (count % length))
                # text = text + ('\0' * add)
                text = text + ('\0' * add).encode('utf-8')
            self.ciphertext = cryptor.encrypt(text)
            # 因为AES加密时候得到的字符串不一定是ascii字符集的,输出到终端或者保存时候可能存在问题
            # 所以这里统一把加密后的字符串转化为16进制字符串
            return b2a_hex(self.ciphertext)

        # 解密后,去掉补足的空格用strip() 去掉
        def decrypt(self, text):
            cryptor = AES.new(self.key, self.mode, b'0123456789ABCDEF')
            plain_text = cryptor.decrypt(a2b_hex(text))
            # return plain_text.rstrip('\0')
            return bytes.decode(plain_text).rstrip('\0')


    if __name__ == '__main__':
        pc = PrpCrypt('jo8j9wGw%6HbxfFn')  # 初始化密钥 key
        e = pc.encrypt('{"code":200,"data":{"apts":[]},"message":"","success":true}')  # 加密
        d = pc.decrypt("lXgLoJQ3MAUdzLX+ORj5/pJlkRAU423JfyUKVd5IwfCSxw6d1mHwBdHV9p3kmKCYwNRmAIEWeb/9ypLCqTZ1FA==")  # 解密
        print("加密:", e)
        print("解密:", d)

    AES-CBC 输出 Base64 的示例代码

    from Crypto.Cipher import AES
    from binascii import b2a_hex, a2b_hex
    import base64

    class PrpCrypt(object):
        def __init__(self, key):
            self.key = key.encode('utf-8')
            self.mode = AES.MODE_CBC

        # 加密函数,如果text不足16位就用空格补足为16位,
        # 如果大于16当时不是16的倍数,那就补足为16的倍数。
        def encrypt(self, text):
            text = text.encode('utf-8')
            cryptor = AES.new(self.key, self.mode, b'0123456789ABCDEF')
            # 这里密钥key 长度必须为16(AES-128),
            # 24(AES-192),或者32 (AES-256)Bytes 长度
            # 目前AES-128 足够目前使用
            length = 16
            count = len(text)
            if count             add = (length - count)
                # \0 backspace
                # text = text + ('\0' * add)
                text = text + ('\0' * add).encode('utf-8')
            elif count > length:
                add = (length - (count % length))
                # text = text + ('\0' * add)
                text = text + ('\0' * add).encode('utf-8')
            self.ciphertext = cryptor.encrypt(text)
            return base64.b64encode(self.ciphertext).decode()

        # 解密后,去掉补足的空格用strip() 去掉
        def decrypt(self, text):
            cryptor = AES.new(self.key, self.mode, b'0123456789ABCDEF')
            decryptByts = base64.b64decode(text)
            plain_text = cryptor.decrypt(decryptByts)
            return bytes.decode(plain_text).rstrip('\0')


    if __name__ == '__main__':
        pc = PrpCrypt('jo8j9wGw%6HbxfFn')  # 初始化密钥 key
        e = pc.encrypt('{"code":200,"data":{"apts":[]},"message":"","success":true}')  # 加密
        d = pc.decrypt("lXgLoJQ3MAUdzLX+ORj5/pJlkRAU423JfyUKVd5IwfCSxw6d1mHwBdHV9p3kmKCYwNRmAIEWeb/9ypLCqTZ1FA==")  # 解密
        print("加密:", e)
        print("解密:", d)

    这里只给出了代码,关于 AES 的原理讲解之类的信息在夜幕的系列课程已经讲过了,这里不再赘述。

    今天的内容就到这里,咱们下次再会~

    Love & Share d979bf3ff9c79331c4159e18ef57a02a.png

    [ 完 ]

    fe6218c76c3e7814b9629b1d02ea1b0d.png

    展开全文
  • 本篇文章为大家介绍的是HTML空格代码的写法,“ ”代码的用法,还有几种空格方式的解释,都在文章中,现在开始往下看吧。首先,我们知道这HTML网页中插入多个空格间隔是需要特殊字符编码的。如果是直接...

    本篇文章为大家介绍的是HTML的空格代码的写法,“ ”代码的用法,还有几种空格方式的解释,都在文章中,现在开始往下看吧。

    首先,我们知道这HTML网页中插入多个空格间隔是需要特殊字符编码的。如果是直接敲入多个空格键的话,虽然看似代码中有了多个空格效果,但其实在浏览器中还是只有1个空格间隔位置的。

    接下来教大家如果输入html空格字符的话,多个空格字符是如何输入的?我们采用直接复制空格字符与DW软件输入空格字符的两种方法介绍:

    第一种叫Html空格字符语法代码:

    就是这个代码“ ”。

    空格字符由&+n+b+s+p+;组成字符,后面的分号记住不能少了。这组空格字符一定要输入到HTML代码里面,才能实现空格的效果。

    如果有多个空格的话,我们就直接复制粘贴输入多次“ ”即可。

      这是代表空格的转意字符

    第二种是用dw里面的输入空格方法:

    在dw里面软件输入空格字符,首先我们将鼠标的指针放到你自己想要插入空格字符地方,然后吧DW软件上面的“插入”点开,选择“HTML”

    b7bc6a6993c0991ce42a1e21547eb0b1.png

    然后在“HTML”弹出选项中选择“特殊字符”最后再选择点击“不换行空格”,这样输入“ ”空格的字符代码,如果输入多个空格字符按照以上操作即可输入多个html空格字符。

    在DW里面也有快捷键输入空格字符

    快捷键是“Ctrl+Shift+Space”输入空格“ ”字符。

    你可以记住html空格字符拼写字母与字符,也都很简单。

    总的来说,就是在html网页中单个空格我们直接按下空格键就可以实现空格排版,如果要实现多个空格来排版的话,我们就需要 空格字符来实现了。

    那么除了“&nbsp”就没有别的了吗?当然有,请往下看

    当然还有一些空格符,插入不同宽度的空格。有多种字符实体可以让浏览器显示空格。不同的浏览器在显示方式上可能会有一点不同,但是这和 有点不同,但是它们不会影响换行:

      — “en空格”是根据字体排印学的计量单位命名,宽度是两个普通空格的宽度

      — “em空格”大概是四个普通空格的宽度

    生成段落的一种方式就是在第一行前插入几个空格:    。这个方法只适用于HTML,如果你使用CSS的话,不推荐这一方法

    在HTML文档的部分,插入以下命令:

    > 

    “p.indent”定义了一个叫“indent”(可以随意命名)的段落(标签为p)。剩下的命令则是给段落左侧添加内边距空格。

    返回HTML文档的主体。每当你想添加段落时,在标签中插入以下内容:

    > 

    要调整缩进的数量,只需要更改CSS命令中的数字“1.8”即可。后面的“em”要保留,它是表示宽度的单位。

    我们的前端学习扣群: 731771211 ,里面都是学习前端的。2020最新技术,从企业招聘人才需求 到怎么学习前端开发,和学习什么内容都有免费系统分享。好友都在里面学习交流,每天都会有大牛定时讲解前端技术!

    希望可以帮助你快速了解前端,学习前端

    db2b5a02319f89499ecc6f6eb10a2140.png

    展开全文
  • 本篇文章为大家介绍的是HTML空格代码的写法,“ ”代码的用法,还有几种空格方式的解释,都在文章中,现在开始往下看吧。首先,我们知道这HTML网页中插入多个空格间隔是需要特殊字符编码的。如果是直接...

    3843d837468300b9d71e1665e75d4b49.png

    本篇文章为大家介绍的是HTML的空格代码的写法,“ ”代码的用法,还有几种空格方式的解释,都在文章中,现在开始往下看吧。

    首先,我们知道这HTML网页中插入多个空格间隔是需要特殊字符编码的。如果是直接敲入多个空格键的话,虽然看似代码中有了多个空格效果,但其实在浏览器中还是只有1个空格间隔位置的。

    接下来教大家如果输入html空格字符的话,多个空格字符是如何输入的?我们采用直接复制空格字符与DW软件输入空格字符的两种方法介绍:

    第一种叫Html空格字符语法代码:

    就是这个代码“ ”。

    空格字符由&+n+b+s+p+;组成字符,后面的分号记住不能少了。这组空格字符一定要输入到HTML代码里面,才能实现空格的效果。

    如果有多个空格的话,我们就直接复制粘贴输入多次“ ”即可。

    这是代表空格的转意字符

    第二种是用dw里面的输入空格方法:

    在dw里面软件输入空格字符,首先我们将鼠标的指针放到你自己想要插入空格字符地方,然后吧DW软件上面的“插入”点开,选择“HTML”

    e69d292721b88cf0a369fdf0cd143c88.png

    然后在“HTML”弹出选项中选择“特殊字符”最后再选择点击“不换行空格”,这样输入“ ”空格的字符代码,如果输入多个空格字符按照以上操作即可输入多个html空格字符。

    在DW里面也有快捷键输入空格字符

    快捷键是“Ctrl+Shift+Space”输入空格“ ”字符。

    你可以记住html空格字符拼写字母与字符,也都很简单。

    总的来说,就是在html网页中单个空格我们直接按下空格键就可以实现空格排版,如果要实现多个空格来排版的话,我们就需要 空格字符来实现了。

    那么除了“&nbsp”就没有别的了吗?当然有,请往下看

    当然还有一些空格符,插入不同宽度的空格。有多种字符实体可以让浏览器显示空格。不同的浏览器在显示方式上可能会有一点不同,但是这和 有点不同,但是它们不会影响换行:

      — “en空格”是根据字体排印学的计量单位命名,宽度是两个普通空格的宽度

    — “em空格”大概是四个普通空格的宽度

    生成段落的一种方式就是在第一行前插入几个空格: 。这个方法只适用于HTML,如果你使用CSS的话,不推荐这一方法

    在HTML文档的<head></head>部分,插入以下命令:

    > <style>p.indent{ padding-left: 1.8em }</style>

    “p.indent”定义了一个叫“indent”(可以随意命名)的段落(标签为p)。剩下的命令则是给段落左侧添加内边距空格。

    返回HTML文档的主体。每当你想添加段落时,在标签中插入以下内容:

    > <p class="indent"></p> 。

    要调整缩进的数量,只需要更改CSS命令中的数字“1.8”即可。后面的“em”要保留,它是表示宽度的单位。

    从最零基础开始的的HTML+CSS+JavaScript。jQuery,Ajax,node,angular框架等到移动端HTML5的项目实战【视频+工具+系统路线图】都有整理,在线解析,学习指导,点:【WEB前端学习圈⑤】

    展开全文
  • 本篇文章为大家介绍的是HTML空格代码的写法,“&nbsp;”代码的用法,还有几种空格方式的解释,都在文章中,现在开始往下看吧。 首先,我们知道这HTML网页中插入多个空格间隔是需要特殊字符编码的。如果是直接...

    本篇文章为大家介绍的是HTML的空格代码的写法,“&nbsp;”代码的用法,还有几种空格方式的解释,都在文章中,现在开始往下看吧。

    首先,我们知道这HTML网页中插入多个空格间隔是需要特殊字符编码的。如果是直接敲入多个空格键的话,虽然看似代码中有了多个空格效果,但其实在浏览器中还是只有1个空格间隔位置的。

    接下来教大家如果输入html空格字符的话,多个空格字符是如何输入的?我们采用直接复制空格字符与DW软件输入空格字符的两种方法介绍:

    第一种叫Html空格字符语法代码:

    就是这个代码“ ”。

    空格字符由&+n+b+s+p+;组成字符,后面的分号记住不能少了。这组空格字符一定要输入到HTML代码里面,才能实现空格的效果。

    如果有多个空格的话,我们就直接复制粘贴输入多次“ ”即可。

      这是代表空格的转意字符

    第二种是用dw里面的输入空格方法:

    在dw里面软件输入空格字符,首先我们将鼠标的指针放到你自己想要插入空格字符地方,然后吧DW软件上面的“插入”点开,选择“HTML”

    然后在“HTML”弹出选项中选择“特殊字符”最后再选择点击“不换行空格”,这样输入“ ”空格的字符代码,如果输入多个空格字符按照以上操作即可输入多个html空格字符。

    在DW里面也有快捷键输入空格字符

    快捷键是“Ctrl+Shift+Space”输入空格“ ”字符。

    你可以记住html空格字符拼写字母与字符,也都很简单。

    总的来说,就是在html网页中单个空格我们直接按下空格键就可以实现空格排版,如果要实现多个空格来排版的话,我们就需要 空格字符来实现了。

    那么除了“&nbsp”就没有别的了吗?当然有,请往下看

    当然还有一些空格符,插入不同宽度的空格。有多种字符实体可以让浏览器显示空格。不同的浏览器在显示方式上可能会有一点不同,但是这和 有点不同,但是它们不会影响换行:

      — “en空格”是根据字体排印学的计量单位命名,宽度是两个普通空格的宽度

      — “em空格”大概是四个普通空格的宽度

    生成段落的一种方式就是在第一行前插入几个空格:    。这个方法只适用于HTML,如果你使用CSS的话,不推荐这一方法

    在HTML文档的<head></head>部分,插入以下命令:

    > <style>p.indent{ padding-left: 1.8em }</style>
    
    

    “p.indent”定义了一个叫“indent”(可以随意命名)的段落(标签为p)。剩下的命令则是给段落左侧添加内边距空格。

    返回HTML文档的主体。每当你想添加段落时,在标签中插入以下内容:

    > <p class="indent"></p> 。
    
    

    要调整缩进的数量,只需要更改CSS命令中的数字“1.8”即可。后面的“em”要保留,它是表示宽度的单位。

    专门建立的学习Q-q-u-n ⑦⑧④-⑦⑧③-零①② 分享学习方法和需要注意的小细节,不停更新最新的教程和学习技巧(从零基础开始到WEB前端项目实战教程,学习工具,全栈开发学习路线以及规划)点:学习前端,我们是认真的

    展开全文
  • 本篇文章为大家介绍的是HTML空格代码的写法,“&nbsp;”代码的用法,还有几种空格方式的解释,都在文章中,现在开始往下看吧。 首先,我们知道这HTML网页中插入多个空格间隔是需要特殊字符编码的。如果是...
  • 本篇文章为大家介绍的是HTML空格代码的写法,“&nbsp;”代码的用法,还有几种空格方式的解释,都在文章中,现在开始往下看吧。首先,我们知道这HTML网页中插入多个空格间隔是需要特殊字符编码的。如果是直接...
  • 本篇文章为大家介绍的是HTML空格代码的写法,“&nbsp;”代码的用法,还有几种空格方式的解释,都在文章中,现在开始往下看吧。程序猿的生活:打造全网web前端全栈资料库(总目录)看完学的更快,掌握的更加...
  • 本篇文章为大家介绍的是HTML空格代码的写法,“&nbsp;”代码的用法,还有几种空格方式的解释,都在文章中,现在开始往下看吧。首先,我们知道这HTML网页中插入多个空格间隔是需要特殊字符编码的。如果是直接...
  • 这组空格字符一定输入到HTML代码里,才能实现空格效果。 如果有多个空格我们就复制粘贴输入多次“ ”即可。 代表空格的转意字符 当然也可以使用快捷键“Ctrl+Shift+Space”输入空格“ ”字符。 扩展资料: 插入空格...
  •  表示一个空白等在平时我们文章时遇到空格时都会直接输入空格键来达到空格的效果,但是在HTML代码中如果我们输入空格键就会被忽略,达不到空格的效果,今天就像大家介绍HTML空格代码如何,希望对大家有所帮助...
  • 网页设计中的空格怎么输入空格代码是: 这个代表网页中的空格,如果要多个空格就复制黏贴。如何在网页制作中做到开头空4个半角空格的位直接ctrl+shift+空格 这样按一下一个空格,需要几个按几个。网页制作...
  • 在本篇文章中,将重点研究java源代码的执行原理,即从程序员编写JAVA源代码,到最终形成产品,在整个过程中,都经历了什么?每一步又是怎么执行的?执行原理又是什么?一、编写java源程序jav...
  • 所谓模糊搜索,就是要加入空格键的搜索,例如搜索"如何在网上学习HTML"就可以改成"学习 HTML",再例如搜索"代码不能运行应该怎么做"可以改成"代码 不能运行 应如何做"等。 第二天 有困难不要着急问老师或者同学 ...
  • 去掉Html textarea 标签前面显示空格

    千次阅读 2013-11-25 19:38:52
    一年前写代码时就遇到这个问题,当时问了N多人找了N多资料都没解决到……就是当提交textarea内容后,总是会在前面加上N多空格。。。实在是不解,连trim都trim不掉。。。。今天又遇到这个问题了,正巧看到一篇关于...
  • 运行时,需要先将待分组人员的名单填写/粘贴到右边方框里 (如效果图所示),人名之间用空格或回车符分开 然后,点击选人按钮,就会在按钮上方出现选中的人名 源代码 HTML代码 <!DOCTYPE html>
  • java 去掉文件里的空格和换行

    千次阅读 2018-03-07 10:29:02
    看到来自百度知道的一个回答:https://zhidao.baidu.com/question/360601157946375732.htmljava 去掉txt里的空格和回车符(也就是换行符)代码怎么写答主为 armei77。下面的评论中 007黄家驹 的建议也很可行。在此...
  • 对( ) 这样的特殊符号,应该用\( \)来表示,这也是很标准的regexp语法,可以为 \n 【5】正则表达式应用——删除空行 启动EditPlus,打开待处理的文本类型文件。 ①、选择“查找”菜单的“替换”命令,弹出文本替换...
  • sublime text怎么可以像DW一样可以提示我的错误代码啊,比如运算符错了(“+ =”中间多了个空格),想知道sublime text怎么实现js,css,html错误代码提示功能,我现在已经安装了jsHint与jsLint还有 Sublimelint这...
  • 一年前写代码时就遇到这个问题,当时问了N多人找了N多资料都没解决到……就是当提交textarea内容后,总是会在前面加上N多空格。。。实在是不解,连trim都trim不掉。。。。今天又遇到这个问题了,正巧看到一篇关于...
  • Java课件以及代码

    2009-12-06 09:40:49
    源文件命名时,若文件中含有public类,源文件必须与该类名字一致,注意区分大小。  正确的语句序列: package Transportation;//怎样写包??? import java.awt.Graphics; import java.applet.Applet;  错误的...
  • 这里主要展示获取多个class的div标签,为了更加精确的修改样式 HTML代码 <...// 选择的DIV的class挨着,中间没有空格,全部出来$('.class1.class2.class3').css({"color":"red"}); ...
  • 输出数据直接到FILE对象中,所以TinyXML代码没有内存负担。 被Print()和SaveFile()调用。 operator输出到一个c++流中。 与C++ iostreams集成在一起。 在"network printing"模式下输出没有换行符,这对于网络传输...
  • HTML5中有一些特性需要我们知道。空白折叠现象空白折叠现象有...打开vscode,这次我在之前创建的第三个网页.html里面写代码来演示。我先生成一个HTML5的骨架,如下图:然后我在body里面一个p标签,在这个p标签里面...
  • HTML5中有一些特性需要我们知道。空白折叠现象空白折叠现象有...打开vscode,这次我在之前创建的第三个网页.html里面写代码来演示。我先生成一个HTML5的骨架,如下图:然后我在body里面一个p标签,在这个p标签里面...
  • html/css 编码规范

    2016-03-15 11:26:35
    之前写html页面都是奔着功能去的,只要能实现效果,不管代码写怎么样。这就导致代码的可维护性,扩展性和复用性都很差,无以规矩不成方圆,先规范下自己的编码规范。html/css规范: 1. 每个块级、列表、表格元素...
  • 我的思路是在客户端,每个2秒钟就向服务器发送一个请求,来更新聊天内容和在线人数,还是上面的问题,当在线人数很多的时候,这样效率怎么样? 比如说500人同时聊天,那么服务器每秒钟要接受250个请求。(因为我...
  • 模板中所列举的命名,都是下面的案例的命名,大家可看具体信息  1.模板写法应注意的3个地方  ...html里面的内容该怎么写怎么写;  3.js读取值的时候在 <%= date %> 等号左边不能有空格...

空空如也

空空如也

1 2 3 4
收藏数 70
精华内容 28
关键字:

html空格代码怎么写