jquery实现文章导航目录效果代码
代码语言:html
所属分类:菜单导航
代码描述:jquery实现文章导航目录效果代码,请在在新窗口中预览,小屏会隐藏导航条的
下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <link type="text/css" rel="stylesheet" href="http://img.bfw.wiki/static/Blog/css/bfw.css?1=2"> <script type="text/javascript" src="//repo.bfw.wiki/bfwrepo/js/jquery.3.5.1.js"></script> <style> .sec_header { font-size: 26px; background: #eeeeee; padding: 10px; } .active { background: #eeeeee; font-weight: bold; } #mulu li{ padding: 10px; } #mulu{ list-style:none; } </style> </head> <body class="bfw-l-font-16 bfw-m-font-16 bfw-s-font-16" style="background: white;"> <div class="bfw-cont "> <div class="bfw-middle bfw-color-b-w bfw-s-row-100 bfw-m-row-100" style="width: 83%; margin: 0 auto;"> <div class="bfw-row-owner bfw-height-auto"> <div class="bfw-l-row-70 bfw-m-row-100 bfw-s-row-100 bfw-float-l"> <h2 class="bfw-align-c bfw-pad-s" style="border-bottom: 1px dashed #0bbdff;">Python对二进制文件进行加密和解密</h2> <div class="content bfw-line-m bfw-pad-m bfw-color-grey" style="line-height: 1.8em;word-wrap: break-word;"> <p> 加密是对信息进行编码的过程,只有有密码才能访问它。这一点至关重要,因为它可以安全地保护您不希望任何人看到或访问的数据。<br /><br /><img class="lazy" title="<a href='/tag/python.html'>Python</a>对二进制文件进行加密和解密" alt="<a href='/tag/python.html'>Python</a>对二进制文件进行加密和解密" src="http://img.bfw.wiki/uploadimg/20201017/5f8a3df8c59d9.png?x-oss-process=style/800_auto" alt="" /> </p> <p> 在本教程中,您将学习如何使用<a href='/tag/python.html'>Python</a>通过加密库对文件或任何字节对象(也包括字符串对象)进行加密。<br /><br />我们将使用对称加密,这意味着用于加密数据的相同密钥也可用于解密。那里有很多加密算法,我们将使用的库是基于AES算法构建的。<br /> </p> <p class="sec_body1"> 注意:了解加密和哈希算法之间的区别非常重要,在加密中,一旦拥有密钥,您就可以检索原始数据,而在哈希函数中则不能,因此,它们被称为单向加密。 </p> <p class="sec_header"> 一、安装依赖 </p> 让我们从安装加密开始:<br /><p class="sec_body1"> pip3 install cryptography<br /> </p> <p></p> <br />打开一个新的<a href='/tag/python.html'>Python</a>文件,让我们开始吧:<br /><p class="sec_body1"> from cryptography.fernet import Fernet </p> Fernet是对称身份验证密码技术的实现,让我们首先生成该密钥并将其写入文件:<br /><br /><pre class="prettyprint lang-py">def write_key(): """ Generates a key and save it into a file """ key = Fernet.generate_key() with open("key.key", "wb") as key_file: key_file.write(key)</pre><p></p> <br />generate_key()函数会生成一个新的Fernet密钥,你需要将其保存在安全的地方,如果丢失了该密钥,则将无法再解密使用此密钥加密的数据。<br /><br />由于此密钥是唯一的,因此我们不会在每次加密任何内容时生成密钥,因此我们需要一个函数来为我们加载该密钥:<br /><br /><pre class="prettyprint lang-py">def load_key(): """ Loads the key from the current directory named `key.key` """ return open("key.key", "rb").read()</pre><p></p> <br /><p class="sec_header"> 二、字符串加密 </p> 现在我们知道了如何获取密钥,让我们从加密字符串对象开始,只是为了让您首先熟悉它。<br /><br />生成密钥并将其写入文件:<br /><pre class="prettyprint lang-py"># generate and write a new key write_key()</pre>让我们加载该密钥:<br /><br /><pre class="prettyprint lang-py"># load the previously generated key key = load_key()</pre><p></p> <br />一些消息:<br /><br /><pre class="prettyprint lang-py">message = "some secret message".encode()</pre><p></p> <br /><br />我们需要对字符串进行编码,以将其转换为字节以适合加密,encode()方法使用utf-8编解码器对该字符串进行编码。使用该键初始化Fernet类:<br /><br /><pre class="prettyprint lang-py"># initialize the Fernet class f = Fernet(key)</pre><p></p> <br />加密消息:<br /><br /><pre class="prettyprint lang-py"># encrypt the message encrypted = f.encrypt(message)</pre><p></p> <br />f.encrypt()方法对传递的数据进行加密,这种加密的结果称为“ Fernet令牌”,并具有强大的隐私性和真实性保证。<br /><br />让我们看看它加密后的输出:<br /><pre class="prettyprint lang-py"># print how it looks print(encrypted)</pre>输出:<br /><p class="sec_body1"> b'gAAAAABdjSdoqn4kx6XMw_fMx5YT2eaeBBCEue3N2FWHhlXjD6JXJyeELfPrKf0cqGaYkcY6Q0bS22ppTBsNTNw2fU5HVg-c-0o-KVqcYxqWAIG-LVVI_1U='<br /> </p> <p></p> <br />解密:<br /><br /><pre class="prettyprint lang-py">decrypted_encrypted = f.decrypt(encrypted) print(decrypted_encrypted)</pre><p></p> 输出:<br /><p class="sec_body1"> b'some secret message'<br /> </p> <p></p> <br />的确是同一条信息。<br /><br />f.decrypt()方法解密Fernet令牌。成功解密后,这将返回原始明文作为结果,否则将引发异常。<br /><br /><p class="sec_header"> 三、文件加密 </p> <p> 现在您知道了如何基本加密字符串,让我们深入研究文件加密,我们需要一个函数来给定文件名和密钥名来加密文件:<br /><br /><pre class="prettyprint lang-py">def encrypt(filename, key): """ Given a filename (str) and key (bytes), it encrypts the file and write it """ f = Fernet(key)</pre> </p> <p></p> <br />在使用给定的密钥初始化Fernet对象之后,让我们首先阅读该文件:<br /><br /><pre class="prettyprint lang-py">with open(filename, "rb") as file: <span style="white-space:pre"> </span># read all file data <span style="white-space:pre"> </span>file_data = file.read()</pre><p></p> <br />之后,加密我们刚刚读取的数据:<br /><br /><pre class="prettyprint lang-py"># encrypt data encrypted_data = f.encrypt(file_data)</pre><p></p> <br />用相同的名称写入加密文件,这样它将覆盖原始文件(暂时不要在敏感信息上使用此文件,只需对一些垃圾数据进行测试):<br /><br /><pre class="prettyprint lang-py"># write the encrypted file with open(filename, "wb") as file: <span style="white-space:pre"> </span>file.write(encrypted_data)</pre><p></p> <br />这样做了,现在要解密的功能,它是相同的过程,除了我们将使用解密()函数,而不是加密() :<br /><br /><pre class="prettyprint lang-py">def decrypt(filename, key): """ Given a filename (str) and key (bytes), it decrypts the file and write it """ f = Fernet(key) with open(filename, "rb") as file: # read the encrypted data encrypted_data = file.read() # decrypt data decrypted_data = f.decrypt(encrypted_data) # write the original file with open(filename, "wb") as file: file.write(decrypted_data)</pre><p></p> <br /><br />让我们测试一下,我在当前目录中有一个csv文件和一个密钥,如下图所示:<p> <img class="lazy" title="<a href='/tag/python.html'>Python</a>对二进制文件进行加密和解密" alt="<a href='/tag/python.html'>Python</a>对二进制文件进行加密和解密" src="http://img.bfw.wiki/uploadimg/20201017/5f8a3b6c92938.png?x-oss-process=style/800_auto" alt="" /><br /><br />它是完全可读的文件,要对其进行加密,我们需要做的就是调用我们刚编写的函数:<br /><br /><pre class="prettyprint lang-py"># uncomment this if it's the first time you run the code, to generate the key # write_key() # load the key key = load_key() # file name file = "data.csv" # encrypt it .........完整代码请登录后点击上方下载按钮下载查看
网友评论0