首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

前端安全保障:加密/混淆/反调试/加壳/自定义虚拟机—必要吗

起初个人认为在加了https的情况下前端加密完全没有必要。前端无论是传输内容加密还是代码加密,都是增加一丁点破解难度而已,却带来性能的天坑。轮子哥说:人家黑客又不是非得用你的网站来使用你的服务,你客户端加密又有什么用呢,人家可以直接把加密后的截取下来发到服务器去,等于没加密。Mark说:现在几乎所有大公司代码都是进过审核的,怎么可能随便让一个程序员打印出密码(参考银行)。如果代码中可能植入后门这点成立,前端同样可以植入后门,内鬼同样可以把用户密码跨域发送给某个地址。 假设不可以前端植入后门,内鬼在后端获取hash后的密码。内鬼同样可以使用脚本使用hash后的密码发包,实现用户登录。综上,前端加密完全没有意义

01

python字符串加密与解密

符串进行加密与解密 设计应用程序时,为了防止一些敏感信息的泄露,通常需要对这些信息进行加密。 以用户的登录密码为例,如果密码以明文的形式存储在数据表中,很容易就会被人发现;相反,如果密码以密文的形式储存,即使别人从数据表中发现了密码,也是加密之后的密码,根本不能使用。通过对密码进行加密,能够极大地提高系统的保密性。 加密与解密: 加密的方法一经公开,就不成其为密. 所以你要你的加密方法还没有被破解,就可以使用. 加密就象是变戏法, 戏法人人会变,巧妙各有不同. 加密字符串的思路: s1 = jiami ( s ) s 称为原文, s1 称为密文 如果从 s1 存在一个函数 ffjiami( s1 ) 求出 s , 称 jiami 是可逆变换. 否则称为不可逆变换. 本文介绍的是可逆变换加密方法的例子. (1) 将字符串s 变为 bytearray 数组 b = byteaaray( s.encode( "gbk")) (2) 将 b 经过某种变换 成为另一个 字节数组 c 关键是 这种变换应该是可逆的, 并且保证 c 能够通过 下面的第(3) 变为一个字符串. (3) 将 c 转换成普通字符串 s1 = c.decode( "gbk") ( 4 ) 解密过程是上述过程的逆过程 #coding=gbk # 字符串加密初探 # 入口 : s 要加密的串 # key 你的密钥 一个字节 1~255之间的整数 # 返回: 加密后的串 def jiaMi( s , key ): b = bytearray( str(s).encode("gbk") ) n = len(b) # 求出 b 的字节数 c = bytearray( n*2 ) j = 0 for i in range( 0, n ): b1 = b[i] b2 = b1 ^ key # b1 = b2^ key c1 = b2 % 16 c2 = b2 // 16 # b2= c2*16 + c1 c1 = c1 + 65 c2 = c2 + 65 # 由于c1,c2都是 0~15之间的数, # 加上65就变成了A-P 的字符的编码 c[j] = c1 c[j+1] = c2 j = j+2 return c.decode("gbk") def ffjiaMi( s, key ): c = bytearray( str(s).encode("gbk") ) n = len(c) # 求出 b 的字节数 if n % 2 != 0 : return "" n = n // 2 b = bytearray( n ) j = 0 for i in range( 0, n ): c1 = c[j] c2 = c[j+1] j = j+2 c1 = c1 - 65 c2 = c2 - 65 b2 = c2*16 + c1 b1 = b2^ key b[i]= b1 try: return b.decode("gbk") except: return "解密失败" key = 15 s = "my dear black hole , haha! " s1 = jiaMi( s, key ) s2 = ffjiaMi( s1,key ) print( "原文=", s) print( "密文=", s1) print( "解密:")

02

探秘加密算法

常见的对称加密算法 DES:分组式加密算法,以64位为分组对数据加密,加解密使用同一个算法。 3DES:三重数据加密算法,对每个数据块应用三次DES加密算法。 AES:高级加密标准算法,是美国联邦政府采用的一种区块加密标准,用于替代原先的DES,目前已被广泛应用。 1)AES/DES/3DES算法 AES、DES、3DES 都是对称的块加密算法,加解密的过程是可逆的。 DES加密算法是一种分组密码,以64位为分组对数据加密,它的密钥长度是56位,加密解密用同一算法。 DES加密算法是对密钥进行保密而公开算法(包括加密和解密算法)。这样,只有掌握了和发送方相同密钥的人才能解读由DES加密算法加密的密文数据。因此,破译DES加密算法实际上就是搜索密钥的编码。对于56位长度的密钥来说,如果用穷举法来进行搜索的话,其运算次数为2 ^ 56 次。 2)3DES算法 3DES算法是基于DES 的对称算法,对一块数据用三个不同的密钥进行三次加密,强度更高。 3)AES算法 AES加密算法是密码学中的高级加密标准,该加密算法采用对称分组密码体制,密钥长度的最少支持为128 位、192 位、256 位,分组长度128 位,算法应易于各种硬件和软件实现。这种加密算法是美国联邦政府采用的区块加密标准。 AES 本身就是为了取代DES的,AES具有更好的安全性、效率和灵活性。 对称算法特点 密钥管理:比较难,不适合互联网,一般用于内部系统; 安全性:中; 加密速度:快好几个数量级 (软件加解密速度至少快 100 倍,每秒可以加解密数 M 比特数据),适合大数据量的加解密处理 2. 非对称加密 非对称加密算法介绍 非对称加密算法,又称为公开密钥加密算法。它需要两个密钥,一个称为公开密钥 (public key),即公钥,另一个称为私有密钥 (private key),即私钥。因为加密和解密使用的是两个不同的密钥,所以这种算法称为非对称加密算法。

01
领券