- CryptDB代码分析1-lua与加密库
YiwenShao
之前的文章”CryptDB原理概述“介绍了CryptDB的基本原理,接下来从代码的角度介绍其实现原理。本文首先关注mysql-proxy的lua脚本与CryptDB加密库的交互过程。前期准备在进行源码阅读和调试之前,首先需要进行CryptDB的安装。之前已经对CryptDB在ubuntu16.04上的安装做过介绍。也可以使用我在github上共享的项目:https://github.com/yiw
- CryptDB使用教程及漏洞利用
weixin_30387339
数据库gitlua
Introduction本文介绍华南理工大学软件学院17级《数据库开发实训》的一个可选课题:CryptDB漏洞利用。任务目标:追踪CryptDB漏洞相关论文详细介绍CryptDB漏洞与攻击方案,并演示之环境要求:Ubuntu12.04LTS(可以从这里下载,如果使用华工校园网,可以从这里下载)。笔者曾经在Ubuntu19.04尝试过,并不能装未在其他linux发行版下做过测试,debian系lin
- CryptDB代码分析5-底层加密库与加密层
YiwenShao
Ctyptdb的设计
CryptDB要进行数据加密,需要实现具体的加密算法,然后使用加密层类型来进行封装。如果用户想在其上实现新的功能,一方面需要实现加密算法,一方面要添加加密层以及其他相关辅助结构。本文介绍这两者之间的一些接口设计,方便大家基于现有代码做实验。加密算法CryptDB使用了AES,OPE,blowfish,Pailliar,Search算法,用到了openssl以及NTL库,相关代码全部位于crypto
- Cryptdb在Ubuntu16.04上的安装
YiwenShao
Cryptdb是MIT的开源数据库加密层,其实现了数据加密操作,代码在Ubuntu12.04上进行过测试.但是12.04对于现在来说太老了,在Ubuntu16.04系统上直接使用脚本安装会出现各种问题,网上现有的参考资料也比较少.本文基于对其安装脚本的分析,给出了Ubuntu16.04上安装的分解步骤.该方法在Ubuntu16.04上测试通过.前期准备Cryptdb的安装主要可以分为安装MySQL
- Cryptdb学习笔记(1)——简介
liuyueyi1995
CryptDB数据库
简单介绍Cryptdb是MIT的计算机科学和人工智能实验室(CSAIL)的一个研究项目,其性质可以理解为数据库代理,旨在保护数据库数据。通过随机性加密、确定性加密、同态加密、保序加密等手段,实现了在密文层级处理SQL请求的功能。以下内容是我阅读论文之后总结的一些点。Cryptdb解决了两大问题:数据库管理员对私密信息的窃取攻击者得到DMBS的完全权限后肆意妄为核心技术:在加密数据上进行SQL操作基
- 安装CryptDB的时候踩过的坑
a054545641
生活中遇到的问题和解决
文章目录0.概述1.bison版本过高导致的问题1.1问题描述1.2解决方法:2.Noruletomaketarget`obj/crypto/ECJoin.o'的错误2.1问题描述2.2解决方法0.概述在Ubuntu12.04.5下安装CryptDB时遇到了一系列麻烦,在这里标注一下避免重复踩坑,也尽量避免后来人踩坑。1.bison版本过高导致的问题1.1问题描述/home/yourname/cr
- CryptDB代码分析5-底层加密库与加密层
YiwenShao
CryptDB要进行数据加密,需要实现具体的加密算法,然后使用加密层类型来进行封装。如果用户想在其上实现新的功能,一方面需要实现加密算法,一方面要添加加密层以及其他相关辅助结构。本文介绍这两者之间的一些接口设计,方便大家基于现有代码做实验。加密算法CryptDB使用了AES,OPE,blowfish,Pailliar,Search算法,用到了openssl以及NTL库,相关代码全部位于crypto
- CryptDB随手笔记(一)
SpiderManSun
CryptDBCryptDB数据库加密
说到密态数据库,不得不说的一个产品就是CryptDB了,CryptDB是由麻省理工Popa团队与2010年提出的。在线应用程序很容易被窃取敏感信息,因为攻击者可以利用软件漏洞来获得私有数据,并且由于好奇或恶意的关系,管理员可能捕获及泄漏数据。CryptDB是一个系统,在面对SQL数据库支持的应用程序的这些攻击时,提供实用和可证明的机密性。它的工作原理是,通过使用一组高效的SQL感知加密方案,对加密
- CryptDB代码分析4-加密元数据读写
YiwenShao
之前介绍了CryptDB中元数据管理相关的类,以及这些类在MySQL中的存储格式。本文介绍这些元数据是什么时候创建的,在什么时候通过什么方式写入数据库,在什么时候被读取,以及元数据在什么地方被使用。初始化与元数据读取SchemaInfo与SchemaCache:上一篇文章介绍了从DatabaseMeta往下的层次化结构,用来表示元数据。实际上,还有上面这两个结构也是元数据的存储有关。其中Schem
- cryptdb学习——使用
jwnba24
cryptdb
1.启动cryptdb/path/to/cryptdb/bins/proxy-bin/bin/mysql-proxy--plugins=proxy--event-threads=4--max-open-files=1024--proxy-lua-script=$EDBDIR/mysqlproxy/wrapper.lua--proxy-address=127.0.0.1:3307--proxy-ba
- cryptdb学习——安装
jwnba24
cryptdb
安装环境:ubuntu12.04下载地址:http://download.chinaunix.net/download/0014000/13351.shtml选择32位或者64位的desktop版本。git,ruby执行环境安装:执行命令:sudoapt-getupdatesudoapt-getinstallrubygit从git中拉取cryptdb安装源码:gitclonehttps://git
- Cryptdb在Ubuntu16.04上的安装
YiwenShao
Cryptdb是MIT的开源数据库加密层,其实现了数据加密操作,代码在Ubuntu12.04上进行过测试.但是12.04对于现在来说太老了,在Ubuntu16.04系统上直接使用脚本安装会出现各种问题,网上现有的参考资料也比较少.本文基于对其安装脚本的分析,给出了Ubuntu16.04上安装的分解步骤.该方法在Ubuntu16.04上测试通过.前期准备Cryptdb的安装主要可以分为安装MySQL
- CryptDB代码分析2-handler与executor
YiwenShao
之前已经介绍了SQL语句经过mysql-proxy的lua脚本与C++库交互的过程。在CryptDB的处理中,总体分为两个阶段:rewrite与next。本文介绍在rewrite和next这两个阶段中比较重要的两个类层次:handler以及executor。SQL改写方式与query恢复介绍首先考虑如何对SQL语句进行加密。CryptDB不直接处理字符串,而是借用了MySQL5.5版本的parse
- CryptDB代码分析3-元数据管理结构
YiwenShao
本文是CryptDB代码分析的第三篇。在CryptDB中,需要对加密过程进行记录:比如某个表的原始名字和加密以后的名字,表中有多少列,每列用了什么样的加密算法。这些信息被记录在mysql-proxy端的embeddedMySQL中。CryptDB使用了元数据管理的模块处理这些信息,相关代码主要位于main/dbobject.hh以及main/schema.cc。层次化的结构在介绍元数据相关的类层次
- CryptDB简单原理论述
三口一个瓜
1.面对threat1解决方案:通过把对数据库进行的操作(选择,连接,投影等操作)进行特殊处理,使得这些操作能够执行在已加密的数据上这种解决方案存在的一大问题就是,目前还没有研究出一种加密方式,使得任何执行在数据库上的操作,都能正确运行在加密过的数据上。因此就意味着需要在数据库服务端存放多种经过不同方式加密的数据。当用户执行特定操作时,Mysql-proxy就会截获操作请求并使用使用特定的加密方式
- 详细论述CryptDB的原理
三口一个瓜
版权声明:本文为博主原创文章,欢迎转载;转载请注明来自瓜哥https://www.jianshu.com/p/1bf893765b2c博主写的另外几篇相关文章:cryptdb安装及使用说明-CryptDB简单原理论述-想要理解CryptDB,你可能需要阅读如下资料:CryptDB.Popa,R.A.,etal.(2011).CryptDB:protectingconfidentialitywith
- 国产SM4密码算法详解
阿祥小王子
SM4sm4密码算法SM4
敬请关注博客,后期不断更新优质博文,谢谢【转发】SM4密码算法源码接口详解最近几天想把cryptdb的加密算法换成国产的sm4加密算法,所以花了时间研究了一下sm4的源码和基本原理,避免忘记,写下这篇博客以作记录。先介绍一下SM4算法,SM4是我们自己国家的一个分组密码算法,是国家密码管理局于2012年发布的。网址戳→_→:http://www.cnnic.net.cn/jscx/mixbz/sm
- Cryptdb原理概述(1)
YiwenShao
Cryptdb[1]是MIT的CSAIL在11年sosp上提出的,其在数据库上实现了同态加密技术.本文基于一些相关文献,以及对代码的调研,对该系统的实现原理以及相关的技术做介绍.同态加密加密是一种保证数据安全的方法,但是数据加密以后,对于数据进行操作就变的复杂了.举例来说,我对两个数字A和B进行了加密存储,分别变成了A'和B',现在我们有一个计算两个数的和的需求,也就是需要计算A+B.那么一般来说
- 【原创】SM4密码算法源码接口详解
sandaojushi
编程学习
【原创】SM4密码算法源码接口详解最近几天想把cryptdb的加密算法换成国产的sm4加密算法,所以花了时间研究了一下sm4的源码和基本原理,避免忘记,写下这篇博客以作记录。先介绍一下SM4算法,SM4是我们自己国家的一个分组密码算法,是国家密码管理局于2012年发布的。网址戳→_→:http://www.cnnic.net.cn/jscx/mixbz/sm4/具体的密码标准和算法官方有非常详尽的
- Java常用排序算法/程序员必须掌握的8大排序算法
cugfy
java
分类:
1)插入排序(直接插入排序、希尔排序)
2)交换排序(冒泡排序、快速排序)
3)选择排序(直接选择排序、堆排序)
4)归并排序
5)分配排序(基数排序)
所需辅助空间最多:归并排序
所需辅助空间最少:堆排序
平均速度最快:快速排序
不稳定:快速排序,希尔排序,堆排序。
先来看看8种排序之间的关系:
1.直接插入排序
(1
- 【Spark102】Spark存储模块BlockManager剖析
bit1129
manager
Spark围绕着BlockManager构建了存储模块,包括RDD,Shuffle,Broadcast的存储都使用了BlockManager。而BlockManager在实现上是一个针对每个应用的Master/Executor结构,即Driver上BlockManager充当了Master角色,而各个Slave上(具体到应用范围,就是Executor)的BlockManager充当了Slave角色
- linux 查看端口被占用情况详解
daizj
linux端口占用netstatlsof
经常在启动一个程序会碰到端口被占用,这里讲一下怎么查看端口是否被占用,及哪个程序占用,怎么Kill掉已占用端口的程序
1、lsof -i:port
port为端口号
[root@slave /data/spark-1.4.0-bin-cdh4]# lsof -i:8080
COMMAND PID USER FD TY
- Hosts文件使用
周凡杨
hostslocahost
一切都要从localhost说起,经常在tomcat容器起动后,访问页面时输入http://localhost:8088/index.jsp,大家都知道localhost代表本机地址,如果本机IP是10.10.134.21,那就相当于http://10.10.134.21:8088/index.jsp,有时候也会看到http: 127.0.0.1:
- java excel工具
g21121
Java excel
直接上代码,一看就懂,利用的是jxl:
import java.io.File;
import java.io.IOException;
import jxl.Cell;
import jxl.Sheet;
import jxl.Workbook;
import jxl.read.biff.BiffException;
import jxl.write.Label;
import
- web报表工具finereport常用函数的用法总结(数组函数)
老A不折腾
finereportweb报表函数总结
ADD2ARRAY
ADDARRAY(array,insertArray, start):在数组第start个位置插入insertArray中的所有元素,再返回该数组。
示例:
ADDARRAY([3,4, 1, 5, 7], [23, 43, 22], 3)返回[3, 4, 23, 43, 22, 1, 5, 7].
ADDARRAY([3,4, 1, 5, 7], "测试&q
- 游戏服务器网络带宽负载计算
墙头上一根草
服务器
家庭所安装的4M,8M宽带。其中M是指,Mbits/S
其中要提前说明的是:
8bits = 1Byte
即8位等于1字节。我们硬盘大小50G。意思是50*1024M字节,约为 50000多字节。但是网宽是以“位”为单位的,所以,8Mbits就是1M字节。是容积体积的单位。
8Mbits/s后面的S是秒。8Mbits/s意思是 每秒8M位,即每秒1M字节。
我是在计算我们网络流量时想到的
- 我的spring学习笔记2-IoC(反向控制 依赖注入)
aijuans
Spring 3 系列
IoC(反向控制 依赖注入)这是Spring提出来了,这也是Spring一大特色。这里我不用多说,我们看Spring教程就可以了解。当然我们不用Spring也可以用IoC,下面我将介绍不用Spring的IoC。
IoC不是框架,她是java的技术,如今大多数轻量级的容器都会用到IoC技术。这里我就用一个例子来说明:
如:程序中有 Mysql.calss 、Oracle.class 、SqlSe
- 高性能mysql 之 选择存储引擎(一)
annan211
mysqlInnoDBMySQL引擎存储引擎
1 没有特殊情况,应尽可能使用InnoDB存储引擎。 原因:InnoDB 和 MYIsAM 是mysql 最常用、使用最普遍的存储引擎。其中InnoDB是最重要、最广泛的存储引擎。她 被设计用来处理大量的短期事务。短期事务大部分情况下是正常提交的,很少有回滚的情况。InnoDB的性能和自动崩溃 恢复特性使得她在非事务型存储的需求中也非常流行,除非有非常
- UDP网络编程
百合不是茶
UDP编程局域网组播
UDP是基于无连接的,不可靠的传输 与TCP/IP相反
UDP实现私聊,发送方式客户端,接受方式服务器
package netUDP_sc;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.Ine
- JQuery对象的val()方法执行结果分析
bijian1013
JavaScriptjsjquery
JavaScript中,如果id对应的标签不存在(同理JAVA中,如果对象不存在),则调用它的方法会报错或抛异常。在实际开发中,发现JQuery在id对应的标签不存在时,调其val()方法不会报错,结果是undefined。
- http请求测试实例(采用json-lib解析)
bijian1013
jsonhttp
由于fastjson只支持JDK1.5版本,因些对于JDK1.4的项目,可以采用json-lib来解析JSON数据。如下是http请求的另外一种写法,仅供参考。
package com;
import java.util.HashMap;
import java.util.Map;
import
- 【RPC框架Hessian四】Hessian与Spring集成
bit1129
hessian
在【RPC框架Hessian二】Hessian 对象序列化和反序列化一文中介绍了基于Hessian的RPC服务的实现步骤,在那里使用Hessian提供的API完成基于Hessian的RPC服务开发和客户端调用,本文使用Spring对Hessian的集成来实现Hessian的RPC调用。
定义模型、接口和服务器端代码
|---Model
&nb
- 【Mahout三】基于Mahout CBayes算法的20newsgroup流程分析
bit1129
Mahout
1.Mahout环境搭建
1.下载Mahout
http://mirror.bit.edu.cn/apache/mahout/0.10.0/mahout-distribution-0.10.0.tar.gz
2.解压Mahout
3. 配置环境变量
vim /etc/profile
export HADOOP_HOME=/home
- nginx负载tomcat遇非80时的转发问题
ronin47
nginx负载后端容器是tomcat(其它容器如WAS,JBOSS暂没发现这个问题)非80端口,遇到跳转异常问题。解决的思路是:$host:port
详细如下:
该问题是最先发现的,由于之前对nginx不是特别的熟悉所以该问题是个入门级别的:
? 1 2 3 4 5
- java-17-在一个字符串中找到第一个只出现一次的字符
bylijinnan
java
public class FirstShowOnlyOnceElement {
/**Q17.在一个字符串中找到第一个只出现一次的字符。如输入abaccdeff,则输出b
* 1.int[] count:count[i]表示i对应字符出现的次数
* 2.将26个英文字母映射:a-z <--> 0-25
* 3.假设全部字母都是小写
*/
pu
- mongoDB 复制集
开窍的石头
mongodb
mongo的复制集就像mysql的主从数据库,当你往其中的主复制集(primary)写数据的时候,副复制集(secondary)会自动同步主复制集(Primary)的数据,当主复制集挂掉以后其中的一个副复制集会自动成为主复制集。提供服务器的可用性。和防止当机问题
mo
- [宇宙与天文]宇宙时代的经济学
comsci
经济
宇宙尺度的交通工具一般都体型巨大,造价高昂。。。。。
在宇宙中进行航行,近程采用反作用力类型的发动机,需要消耗少量矿石燃料,中远程航行要采用量子或者聚变反应堆发动机,进行超空间跳跃,要消耗大量高纯度水晶体能源
以目前地球上国家的经济发展水平来讲,
- Git忽略文件
Cwind
git
有很多文件不必使用git管理。例如Eclipse或其他IDE生成的项目文件,编译生成的各种目标或临时文件等。使用git status时,会在Untracked files里面看到这些文件列表,在一次需要添加的文件比较多时(使用git add . / git add -u),会把这些所有的未跟踪文件添加进索引。
==== ==== ==== 一些牢骚
- MySQL连接数据库的必须配置
dashuaifu
mysql连接数据库配置
MySQL连接数据库的必须配置
1.driverClass:com.mysql.jdbc.Driver
2.jdbcUrl:jdbc:mysql://localhost:3306/dbname
3.user:username
4.password:password
其中1是驱动名;2是url,这里的‘dbna
- 一生要养成的60个习惯
dcj3sjt126com
习惯
一生要养成的60个习惯
第1篇 让你更受大家欢迎的习惯
1 守时,不准时赴约,让别人等,会失去很多机会。
如何做到:
①该起床时就起床,
②养成任何事情都提前15分钟的习惯。
③带本可以随时阅读的书,如果早了就拿出来读读。
④有条理,生活没条理最容易耽误时间。
⑤提前计划:将重要和不重要的事情岔开。
⑥今天就准备好明天要穿的衣服。
⑦按时睡觉,这会让按时起床更容易。
2 注重
- [介绍]Yii 是什么
dcj3sjt126com
PHPyii2
Yii 是一个高性能,基于组件的 PHP 框架,用于快速开发现代 Web 应用程序。名字 Yii (读作 易)在中文里有“极致简单与不断演变”两重含义,也可看作 Yes It Is! 的缩写。
Yii 最适合做什么?
Yii 是一个通用的 Web 编程框架,即可以用于开发各种用 PHP 构建的 Web 应用。因为基于组件的框架结构和设计精巧的缓存支持,它特别适合开发大型应
- Linux SSH常用总结
eksliang
linux sshSSHD
转载请出自出处:http://eksliang.iteye.com/blog/2186931 一、连接到远程主机
格式:
ssh name@remoteserver
例如:
ssh
[email protected]
二、连接到远程主机指定的端口
格式:
ssh name@remoteserver -p 22
例如:
ssh i
- 快速上传头像到服务端工具类FaceUtil
gundumw100
android
快速迭代用
import java.io.DataOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOExceptio
- jQuery入门之怎么使用
ini
JavaScripthtmljqueryWebcss
jQuery的强大我何问起(个人主页:hovertree.com)就不用多说了,那么怎么使用jQuery呢?
首先,下载jquery。下载地址:http://hovertree.com/hvtart/bjae/b8627323101a4994.htm,一个是压缩版本,一个是未压缩版本,如果在开发测试阶段,可以使用未压缩版本,实际应用一般使用压缩版本(min)。然后就在页面上引用。
- 带filter的hbase查询优化
kane_xie
查询优化hbaseRandomRowFilter
问题描述
hbase scan数据缓慢,server端出现LeaseException。hbase写入缓慢。
问题原因
直接原因是: hbase client端每次和regionserver交互的时候,都会在服务器端生成一个Lease,Lease的有效期由参数hbase.regionserver.lease.period确定。如果hbase scan需
- java设计模式-单例模式
men4661273
java单例枚举反射IOC
单例模式1,饿汉模式
//饿汉式单例类.在类初始化时,已经自行实例化
public class Singleton1 {
//私有的默认构造函数
private Singleton1() {}
//已经自行实例化
private static final Singleton1 singl
- mongodb 查询某一天所有信息的3种方法,根据日期查询
qiaolevip
每天进步一点点学习永无止境mongodb纵观千象
// mongodb的查询真让人难以琢磨,就查询单天信息,都需要花费一番功夫才行。
// 第一种方式:
coll.aggregate([
{$project:{sendDate: {$substr: ['$sendTime', 0, 10]}, sendTime: 1, content:1}},
{$match:{sendDate: '2015-
- 二维数组转换成JSON
tangqi609567707
java二维数组json
原文出处:http://blog.csdn.net/springsen/article/details/7833596
public class Demo {
public static void main(String[] args) { String[][] blogL
- erlang supervisor
wudixiaotie
erlang
定义supervisor时,如果是监控celuesimple_one_for_one则删除children的时候就用supervisor:terminate_child (SupModuleName, ChildPid),如果shutdown策略选择的是brutal_kill,那么supervisor会调用exit(ChildPid, kill),这样的话如果Child的behavior是gen_