申明: 文章为转载 原文地址原文 RSA是一种非对称加密算法 非对称加密需要公钥(publickey)和私钥(privatekey) 消息传递前需要先生成公钥和私钥,发送方将待发送消息用公钥加密,发送给接收方。接收方收到消息后,用私钥解密。在这个过程中,公钥负责加密,私钥负责解密,消息在传输过程中即使被截获,攻击者由于没有私钥,无法破解截获的消息。 非对称加密算法的加解密速度低于对称加密算法,但是安全性更高。 非对称加密算法:RSA、DSA、ECC等算法 RSA加密解密过程: import rsa # rsa...

阅读全文>>

0x01 公钥和私钥 公钥:公开的密码 私钥:私有备份的密码 不对称的加解密算法,比较出名的就是RSA 0x02 主要用处 数据传输 公钥加密-> 私钥解密: 主要用于数据传输过程,不担心数据泄露的问题 私钥加密-> 公钥解密: 主要用于数字认证,加密后的数据无法伪造. 0x03 代码示例 主要的功能: 1: 生成公钥和私钥 2: 公钥加密->私钥解密 3: 私钥加密-> 公钥解密 <?php /** * 生成RSA的公钥和私钥 ...

阅读全文>>

本文实例分析了ThinkPHP框架分布式数据库连接方法。分享给大家供大家参考,具体如下: Thinkphp作为国内的一款流行框架,相信使用的人一定不在少数。本篇我们来分析一下Thinkphp中比较重要的一部分——分布式数据库的连接。 当然了,我们在这里不是去将如何使用模型去对数据库进行增删改查。我们是对其底层的连接代码做一个分析,可以帮助大家更好的理解thinkphp对数据库的操作。方便我们以后的使用。 一、单一数据库的连接 在使用的时候,单一数据库的连接配置非常简单。我们只需要在配置文件中配置一下的信息即可。 'DB_TYPE' =>...

阅读全文>>

两种方式实现 1 使用最后时间判断 class Throttle(MiddlewareMixin): VIEW_LIMIT = {} def process_request(self,requst): # 限制访问次数 # 1分钟内只允许访问3次 remote_addr = requst.META['REMOTE_ADDR'] print(self.VIEW_LIMIT) if remote_addr not in self.VIEW_LIMIT: ...

阅读全文>>

测试代码: models.Tb1.objects.filter(id__lt=10, id__gt=1) # 获取id大于1 且 小于10的值 models.Tb1.objects.filter(id__in=[11, 22, 33]) # 获取id等于11、22、33的数据 models.Tb1.objects.exclude(id__in=[11, 22, 33]) # not in models.Tb1.objects.filter(name__contains="ven") # 获取name字段包含"ven"的 models.Tb1.objects.f...

阅读全文>>

常用的查询操作 <1> all(): 查询所有结果 <2> get(**kwargs): 返回与所给筛选条件相匹配的对象,返回结果有且只有一个,如果符合筛选条件的对象超过一个或者没有都会抛出错误。 <3> filter(**kwargs): 它包含了与所给筛选条件相匹配的对象 <4> exclude(**kwargs): 它包含了与所给筛选条件不匹配的对象 <5> values(*field): 返回一个ValueQuerySet——一个特殊的QuerySet,运行后得到的并不是一系列model的实例化对...

阅读全文>>

0x01 函数代码 ''' /** * 加密解密子字符串函数 * @param $string * @param $operation * @param string $key * @return bool|mixed|string * * $key = md5(md5("gyarmy")); $token = encrypt($str, 'E', $key); echo '加密:'.encrypt($str, 'E', $key); echo '<br />'; echo '解密:'.enc...

阅读全文>>

上线后出问题的原因 注意 0 和 '0' <?php #测试下注释方法 function a($a){ var_dump(empty($a)); var_dump($a==null); } //php填坑 a('0'); 原因说明 原文 测试案例 <?php #测试下注释方法 function a($a){ var_dump(empty($a)); var_dump($a==null); ...

阅读全文>>

0x01 错误原因 python manage.py makemigrations 报错提示: AttributeError: 'str' object has no attribute 'decode' 0x02 解决 直接定位到报错文件 C:\python38\Lib\site-packages\django\db\backends\mysql\operations.py 修改源码: # 头部导入 from django.utils.encoding import force_text # 报错的位置更改 q...

阅读全文>>