自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(93)
  • 资源 (9)
  • 收藏
  • 关注

原创 【C++】实现敏感词过滤算法(含源码)

敏感词过滤算法(聚合词树查询法)1.构建词树2.敏感词判断3.遍历文本关于敏感词过滤算法,数不胜数,在参考众多算法后,选取了比较实用的算法,进行总结与改进。大家可以参考一下链接:敏感词过滤算法实现发一个高性能的敏感词过滤算法 可以忽略大小写、全半角、简繁体、特殊符号干扰算法描述:将所有敏感词库按模块聚合构建成一个词树(所谓聚合,就是将相同字开头的部分进行聚合

2017-01-13 11:52:35 7477

原创 【密码学】【安全多方计算】浅析隐私求交PSI

隐私集合求交使得持有数据参与方通过计算得到集合的交集数据,而不泄露任何交集以外的数据信息。

2023-11-27 16:25:48 1257

原创 【密码学】【多方安全计算】不经意传输(Oblivious Transfer,OT)

不经意传输(oblivious transfer)是一个密码学协议,在这个协议中,消息发送者从一些待发送的消息中发送数据给接收者,但事后对发送了哪一条消息仍然oblivious(不知道),同时接受者对自己想要接受外的数据一无所知,这个协议也叫茫然传输协议。

2023-11-27 15:45:07 1592 1

原创 【密码学】【多方安全计算】混淆电路Garbled Circuit浅析

首先Alice把自己的输入对应的key发送给Bob,比如Alice的输入是0,那就发k0x,输入的是1就发k1x。Bob根据收到的kx和自己的ky,对上述加密表的每一行尝试解密,最终只有一行能解密成功,并提取相应的kz。如上图所示,封面中的两个人Alice和Bob想要搞点事情,他们搞了个电路(比如比较电路),每个门包括输入线(input wire)和输出线(output wire)。通俗的说就是一些人具有其隐私数据,他们想把这些数据联合起来算点什么,但又不想把数据交给别人,混淆电路解决的就是此类问题。

2023-06-28 11:35:16 755 1

原创 【密码学】Differential Privacy差分隐私

差分隐私,英文名称为differential privacy。目的为保护数据源中因微小的改动而导致的隐私泄漏问题。比如一家医院统计关于糖网病患者人数,那么其中某人是否为糖网病患者就属于差分隐私问题。差分隐私算法要保证不法分子难以根据数据结果反推出数据的真实情况,因而泄漏隐私。

2023-06-27 17:21:32 756

原创 【密码学】【多方安全计算】Secret Sharing秘密共享浅析

Secret Sharing被称为秘密共享或私密共享,有一个秘密数值D,数值D被分解为n个片段并设置一个阈值k,当拥有k个以上片段时才可以恢复数值D,这种秘密分享叫做阈值秘密分享。普通的秘密分享指将秘密数值D,分解成n个片段,当n个片段都被集合起来时才可以恢复秘密值D。普通的秘密共享的问题在于,秘密的安全性得到了保证,但是管理的风险增加了,如果有一个片段被丢失将导致整个秘密无法被恢复。所以在业界常用的是阈值秘密共享。本文也就此进行讨论。

2023-06-26 16:04:59 1979 1

原创 【区块链】Merkle Tree及SPV简易支付验证详解

Merkle Tree默克尔树在比特币中Merkle Tree实际上是一个hash树,是个二叉树。它的叶子节点为交易的hash值,然后对相邻的hash值进行拼接,并对拼接后的值再次进行hash运算,然后对相邻结果再次进行hash运算,重复对结果运算并产生新的节点,直至产生最后一个节点,成为跟节点Merkle Root。1.hash运算采用double hash,即对数据进行两次hash运算。2.在计算hash值是要保证节点数量为偶数,为奇数的情况,复制最后一个节点并参与运算HA = SHA256(

2022-04-19 11:39:55 6790 5

原创 【安全】【SQL注入漏洞】通过sql注入获取数据库管理员密码

本博客中使用封神台靶标系统进行演示,靶标系统网站。一、判断网站是否存在sql注入漏洞1.在地址栏写入?id=1 and 1=1,回车页面返回正常。2.在地址栏写入?id=1 and 1=2,回车页面返回异常,这里可能存在sql注入漏洞。二、判断字段数1.在地址栏写入?id=1 and 1=1 order by 3页面返回异常,表的字段数小于32.在地址栏写入?id=1 and 1=1 order by 2页面返回正常,说明表的字段数为2。三、获取回显点在地址栏写入?id=1

2022-01-21 14:14:58 7406

原创 【安全】反序列化漏洞

漏洞简介序列化:把对象转换为字节序列的过程,即把对象转换为可以存储或传输的数据的过程。例如将内存中的对象转换为二进制数据流或文件,在网络传输过程中,可以是字节或是XML等格式。反序列化:把字节序列恢复为对象的过程,即把可以存储或传输的数据转换为对象的过程。例如将二进制数据流或文件加载到内存中还原为对象。反序列化漏洞首次出现在2015。虽然漏洞较新,但利用十分热门,主要原因还是太过信任客户端提交的数据,容易被开发者忽略,该漏洞一般都可执行任意命令或代码,造成的影响较大。漏洞成因在身份验证,文件读

2022-01-10 15:48:26 3229 1

原创 【区块链】【智能合约】美链攻击分析以及安全库的使用

1.美链攻击过程美链代币BEC为发行在以太坊上的ERC20代币,其具体合约的代码在该链接中合约代码。向美链发起攻击的交易链接为攻击交易hash。function batchTransfer(address[] _receivers, uint256 _value) public whenNotPaused returns (bool) { uint cnt = _receivers.length; uint256 amount = uint256(cnt) * _value;

2021-08-31 11:10:53 5921

原创 【go语言】【map结构】go语言中map的用法

map的创建1.初始化创建mapnodeTable := map[string]string { "N0": "127.0.0.1:8000", "N1": "127.0.0.1:8001", "N2": "127.0.0.1:8002", "N3": "127.0.0.1:8003",}2.make创建mapnodeTable := make(map[string]string)nodeTable["N0"] = "127.0.

2021-06-04 11:55:50 119

原创 【Jenkins】使用Jenkins拉取GitHub代码

Jenkins使用步骤:1.点击“新建任务”,进行任务的创建2.输入任务名称,并选择“流水线”3.勾选“GitHub项目”,并写入github对应的仓库链接4.在“流水线”脚本中,写入需要执行的脚本,包括拉去GitHub的命令具体代码pipeline { agent any stages { stage("stage 1") { steps{ echo "hello world"

2021-06-02 17:14:13 853 1

原创 【区块链】【跨链】浅析跨链原子互换协议

前言每个区块链都有自己的数据资产与数据信息,比特币创建以来TPS一直成为区块链行业的瓶颈,难以突破。为此行业涌现出各种解决办法,改进共识、区块扩容、改进数据结构等。plasma等侧链技术,从区块链的横向扩容方面对区块链性能进行提升。即主链负责处理基本事务,侧链负责处理特定事务,例如比特币可以生成pizza链、fruit链、drink链,当人们需要使用比特币进行购买pizza、水果、酒水时,可以...

2019-06-19 11:09:21 1759

原创 【区块链】【以太坊】GHOST协议的浅析

GHOST全称为Greedy Heaviest-Observed Sub-Tree,即贪婪最重可观察子树协议。与Bitcoin中的最长链原则不同,以太坊使用GHOST协议,通过判断最重子树来决定主链。算法描述选择区块作为主链的算法Input: Block tree T1. set B ← Genesis Block2. if ChildrenT (B) = ∅ then retu...

2019-05-21 12:19:53 1691

原创 【区块链】以太坊RLP解码工具

Transaction类型RLP解码工具//0xf864808502540be400825208949953974128a116a79bed4836e571a77090d098fa808025a0b00d97f985010034e96d924da2477a9ad237b5d407e172cee66f5e7afc70fc03a01f7154072b29b4fc77f8704457aa0...

2019-05-06 15:25:16 1114

原创 【区块链】区块链学习路线(论文篇)

Blockchain Papers Reading RoadmapRecording the papers, hoping to provide some help for some newcomer who want to join the blockchain.I will continue to update the article to this repository.Histo...

2019-04-27 14:10:35 1851

原创 【区块链】以太坊gas的设计机制

gas机制以太坊中交易的发送,合约的调用及发布,都需要调用EVM虚拟机,在EVM中执行指令时需要消耗gas,执行不同指令所消耗的gas数量也不同,具体指令与gas消耗的对应关系可参考以太坊黄皮书。下面从设计的角度,谈谈自己对gasLimit,gasPrice字段设计的理解。gas费用的计算公式:gasUsed*gasPrice = ether(wei)gas相关字段以......

2019-04-18 17:00:51 1214

原创 【区块链】以太坊交易中的R、S、V字段

最近在做区块链钱包,想让自己的钱包适配小狐狸插件,在小狐狸插件中余额显示、私钥导入都正常,但是在交易发送时出现错误,交易详情如下{"jsonrpc":"2.0","id":1,"result":{"blockHash":"0x949f40920a86f281daccbe8e30dd60a366b22ff270647815f6bfc0402ff38e42","blockNumber":"0xce3...

2019-04-09 12:09:56 7064

原创 【mysql】按时间将数据分组

数据库中保存的交易记录,需要按天和按小时分别展现出来,可使用sql语句直接分组select count(*) as '交易数量', sum(amount) as '交易总额' FROM transaction where has_deal=1 group by DATE_FORMAT( send_erc_timestamp, "%Y-%m-%d %H" ); ...

2018-09-28 21:31:09 1034

原创 【Python】构造通用任务父类

服务器端常常需要启动一个进程,作为task处理任务,如果类似但任务类别较多,可以创建一个task父类import jsonimport timeimport signalclass Task(object): running = True interval_time = 10 def do_task(self): while True and...

2018-09-27 16:35:31 201

转载 【linux】crontab与环境变量

1. crontab与环境变量不要假定cron知道所需要的特殊环境,它其实并不知道。所以你要保证在shelll脚本中提供所有必要的路径和环境变量,除了一些自动设置的全局变量。所以注意如下3点:1)脚本中涉及文件路径时写全局路径;2)脚本执行要用到java或其他环境变量时,通过source命令引入环境变量,如:cat start_cbp.sh#!/bin/shsource /etc/pr...

2018-09-25 16:16:25 1012

原创 【问题解决】pip安装时出现"return Command 'lsb_release -a' returned non-zero exit status 1"

安装pip后,无法使用pip安装一些包,总是会出现上述错误,删除lsb_release文件可解决此问题sudo rm /usr/bin/lsb_release可参考连接:https://github.com/pypa/pip/issues/4924...

2018-09-17 18:55:19 9205 2

转载 【linux】【python】linux 一行命令安装python3.7

一行命令搞定(仅适用通过apt或yum来安装包的系统[ubuntu/red hat/centos])curl https://bc.gongxinke.cn/downloads/install-python-3.7.0 | bash 

2018-09-17 17:17:33 687

原创 【Vim】vim配色+tab缩进

1.进入~/.vimrc文件syntax onfiletype indent plugin onsyntax on设置vim语法高亮filetype indent plugin on设置对特定的文件类型缩进2.进入~/.vim/ftplugin/python.vim文件set tabstop=8set expandtabset shiftwidth=4set sof...

2018-09-11 22:09:05 268

原创 【mysql】数据库的导入与导出

场景:需要将远程数据的表、表的数据导入到本地数据库中1.到处表结构、表数据mysqldump -h 主机ip -u用户名 -p密码 库名 表名,表名 > db.sql 连同表的结构和数据都导入db.sql2.登录本地mysql创建数据库mysql> create database wallet;mysql -uroot -p123456 wallet <...

2018-09-11 19:49:30 172 2

原创 【Python】break,continue不会影响python异常处理的流程

最近在项目中遇到这样的情况,在while循环中处理数据,当异常发生时需要捕获异常,处理后使用continue跳过后面部分代码问题:如果在异常处理中添加finally从句,是否会因为except从句中的continue而被跳过结论:不会,continue、break语句只会影响while循环的逻辑,异常处理机制不受影响实验代码:#!/usr/bin/python#--coding...

2018-08-18 16:45:47 6356

转载 【问题解决】【Python】解决 django 中 mysql gone away 的问题

原文连接:https://zhaojames0707.github.io/post/django_mysql_gone_away/最近在项目中,我使用 Django Command 模块写了一个脚本,处理从 MQ 发来的消息,并入库。在测试过程中,程序运行良好,但是在程序上线并运行一段时间后,出现了以下错误:OperationalError: (2006, 'MySQL server h...

2018-08-17 11:08:20 2322

原创 【问题解决】【Python】ValuerError: invalid literal for int() with base 10

出错场景:使用int("", 16),将一个空字符串转换为整数调用api获得消息包,解析消息包获取数据class ABIUtil(object): @staticmethod def parser_transfer(input): if not input: return False if len(input) !...

2018-08-15 21:34:22 1519

原创 【Python】转换数组元素类型(生成式)

在python项目开发中常需要转换数组对元素类型,可以选择使用for循环,遍历元素做转换,也可以使用python的列表生成式来完成使用场景:一个列表中的元素为string类型,转换成对应的int类型arr = ['1', '2', '3', '4']arr1 = [int(val) for val in arr]print (arr)print (arr1)'''打印结果...

2018-08-09 20:40:20 6126

原创 【Python】枚举变量的使用

项目中需要大量用到枚举变量,但我们希望可以根据指定的字符串,创建对应的枚举变量,并将枚举值作为存储值场景:客户端发送的消息包带有"android"字符串,用以说明当前移动端系统类型,服务器端需要为其创建对应的枚举变量,最终将枚举值(0或1)存入数据库中定义一个抽象的枚举类作为父类:class BaseTupleEnum(Enum): def __init__(self, de...

2018-08-08 19:36:23 1970

原创 【URL编码】URL中特殊的字符处理

URL中包含一些特殊字符,当我们的信息中包含特殊字符时需要进行编码编码格式:%后面加上符号的asiic的码值(十六进制),比如"#"码值为%23常用特殊字符码值特殊含义 十六进制+ 表示空格(在URL中不能使用空格) %2B/ 分隔目录和子目录 ...

2018-08-02 11:09:01 856

原创 【问题解决】解决Python UnicodeEncodeError: 'ascii' codec can't encode character u'\xa0' in position 20

python中需要将字典中的内容写入文件,item['comment']中的内容有汉字编码,执行时出现UnicodeEncodeError错误with open('xie_zheng.txt','a',encoding='utf-8') as f:       f.write(item['date'] + ',' + item['nickname'] + ',' + item['city'...

2018-07-20 22:25:03 2379

原创 【SQL】查询表中某列重复项数

在数据库表中,想要查询某字段内容重复的情况,可使用如下方法select 字段名, count(字段名) from 表名 group by 字段名 having count(字段名) > 1;按字段分组,再将组内数量大于1(重复)的过滤出来,最后打印字段名与重复数量...

2018-07-12 21:43:05 1534

原创 【Python】翻转字典的key, value

Python开发过程中常常需要两张可以互相转换的字典,这时我们可以按照对照表手动硬编码一个字典表,根据已有的字典表迭代生成相反的另一张字典表使用场景:根据摩斯密码表,实现简单的编解码在这种情况下就需要生成两张表,一张是根据字符查找电码符号,另一张是根据电码符号查找字符关键代码:import sysmorse2char = {'.-': 'A', '-...': 'B', ...

2018-07-11 20:27:03 1581

原创 【Python】实现将对象转成字典

在编程中,常常需要把一个对象转换成一个json或是一个字典类型。在使用sqlalchemy时,定义的表对象需要把他们转换成字典类型,字典到json的格式转换就很方便了def to_dict(dumyself): result = {} for a in dir(dumyself): # filter inner field by fieldname ...

2018-07-09 18:27:58 5224 1

原创 【Linux】nohup 与重定向的使用

小结:shell脚本中需要启动多个进程,为了使得各个进程无阻碍的被开启,并在关闭控制台的情况下正常运行,常常使用nohup 与 &来实现nohup python src/slparser.py > slparser.nohup 2>&1 &nohup就是No Hang Up,不挂起的意思。当我们关闭控制台时,在后台运行的程序会被关闭掉,使用nohup命令可以使程...

2018-07-04 17:37:36 1540

原创 【Linux】vim的撤销与恢复

vim撤销操作:uvim恢复操作:ctrl+r

2018-06-29 11:02:15 44830 1

原创 【Python】【Kafka】kafka读取所有数据——使用消费群组+offset

kafka为分布式消息队列,队列中的消息可以保存7天。当使用消费者读取kafka中数据时,会面临这样的问题:当消费者进程中断后,再次进行消费时会发现,读取的位置当前获取的新数据,如果配置offsetauto_offset_reset='earliest'会从kafka初始的数据消费,重复消费之前的数据。如果想要使消费者像下载文件一样,可以“设置断点继续重传”我们可以在定义consumer时候这样做...

2018-06-26 20:56:20 10509 3

原创 【Linux】vim中多行批量插入空格

在10行和112行之间插入4空格:10,112 s/^/ /

2018-06-24 14:34:09 15031 2

原创 【Linux】vim在文本中批量替换文本

全文替换%s#abc#def#g(用def替换文件中所有的abc)局部替换:10,50s#abc#def#g(如文件内有#,可用/替换,:%s/abc/def/g)

2018-06-11 18:13:35 9052

Redis Desktop Manager for Mac系统

mac环境下,通过桌面软件查看redis数据库中的数据存储情况

2018-07-18

MFC实现简单的串口通信

2017-03-26

代码生成工具

在软件开发中多采用自动生成工具,将配置表生成对应的脚本文件(如.lua)和读取脚本的配置文件(如.h与cpp),所有配置文件由管理器ConfigMgr统一加载入内存,程序运行时在需要的地方,即可直接从内存中查询

2017-02-16

c++实现日志系统

软件开发中常常将关键的操作、一般性警告以及严重的错误,通过日志文件的形式输出字符串,本子系统实现bootlog,debuglog,warning,fatallog等输出形式,支持linux、windows两种编译环境,支持多线程。有不到之处欢迎指正,交流。email:[email protected]

2017-01-24

C++ loki 库源码(STL之父经典)

有助于设计模式学习

2017-01-14

设计模式(Jason McDonald)

习惯了厚厚的砖头,看到这本精简版电子书,着实兴奋了下,书中内容非常精炼,主要涉及23种设计模式的UML类图、目标、应用场景、应用实例;这对于日常查询或者是总体浏览比较等等非常的方便; 下面就把书中最重要的各种设计模式的UML类图贴图说明

2017-01-12

C++实现单例模式(懒汉式)源码

最近在做游戏开发,阅读了一些源码后做了一些总结与记录,希望对自己和其他的朋友有所帮助

2017-01-07

c++实现游戏开发中常用的对象池(含源码)

对象池的五要素: 1.对象集合 2.未使用对象索引集合 3.已使用对象索引集合 4.当前使用量 5.最大使用量

2017-01-06

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除