sha1加密处理中文时在js和php中不一样怎么办!如何处理?
前端对中文进行encodeURI,这样中文就会变成字符,英文和数字,再对其进行sha1加密,就可以和php的一致了,之后在后端用urldecode还原为中文就行了。前端和后端的URL编码函数是不同的需要注意。
sha1怎么解压?
包含SHA-1块密码加密算法使用的“块”的文件;通常存储一系列位或字符,用于在运行SHA-1哈希函数时验证身份。当托管一个要下载的文件时,有时开发人员还会提供一个.SHA1 文件,用户可以使用该文件来验证该文件是否可信且未损坏。
改变文件的任何属性,都将使得SHA1值变化,据说文件的MD5校验值可以被伪造,不知道SHA1校验值是否可以同样被伪造。
再者,不考虑伪造文件校验值的方法,那么是否有办法创建一个加密的压缩包,并使得加密后的压缩包的SHA1校验值正好是该压缩包的解压密码。
在不改变文件内容的情况下,校验值是唯一确定的,不存在伪造这一说法.
反过来说,想要改变效验值,可以通过改变文件内容来实现
那么加密的压缩包如何修改效验值呢,很简单:
加一个含有无意义内容的文件,通过修改这个文件的内容来改变最终效验结果。
那么怎么让SHA1值正好是压缩包密码呢.
我能想到的办法就是撞,用符合sha1规则的密码和随机的文件来不停的生成压缩包,然后检查效验值是否和密码一致。
不过计算成本很高,不知道题主出于什么需求。
又想到一个办法,有一种东西就叫图种,利用的是压缩包可以和其他文件共存的特性,
那么还是刚刚那个方法,
只不过是先用特定sha1值压缩,
压缩完之后在不破坏压缩包的情况下,增加无意义内容,
来不停的修改最终效验值,直到与密码一致
python如何加密?
1、Python中使用Base64加密:
Python内置的base64模块可以直接进行base64的编解码
注意:用于base64编码的,要么是ASCII包含的字符,要么是二进制数据。
2、Python中使用MD5加密
由于MD5模块在python3中被移除,在python3中使用hashlib模块进行md5操作。
3、使用hmac加密
python中还有一个hmac模块,它对我们创建key和内容再进行处理然后再加密
该模块加密是先把数据存储到字典中,然后再进行加密,方法与上述方法类似。
注:加密数据时一定要指定数据编码格式。
4、使用sha1 加密
SHA1的全称是Secure Hash Algorithm(安全哈希算法) 。SHA1基于MD5,加密后的数据长度更长,
它对长度小于264的输入,产生长度为160bit的散列值。比MD5多32位。
因此,比MD5更加安全,但SHA1的运算速度就比MD5要慢了。