自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

SpiderManSun的博客

主要从事研究数据库加密

  • 博客(35)
  • 收藏
  • 关注

原创 python连接数据库查询出现乱码解决方案

前一段时间,我使用python连接sql server数据库来完成在数据库的查询工作,数据库的编码使用的是GBK编码,在查询的时候,查询出的结果出现了乱码,可以通过将数据的的编码方式改为UTF-8解决这个问题,但是对于公司的数据库不能轻易更改数据库的编码,我们可以通过降低pymssql版本和更新PyHamcrest包的方式解决这个问题,具体如下:我使用的是pymssql2.1.5版本,首先我们需要将pymssql的版本降到2.1.4版本,亲测2.1.4版本的好用python -m pip inst

2020-11-09 16:55:49 1932

原创 Java中XML读写操作

最近做项目遇到了对XML读写上的问题,经过上网查阅研究,发现了一个很好的包:org.dom4j。jar包下载地址于是自己封装了一个XML读写类。以下就是我封装的类。首先定义了一个类名:XMLHandlepublic class XMLHandle { public static void main(String[] args) { } priv...

2019-01-19 16:19:04 3907

原创 vim的使用

当我们使用Linux系统时避免不了一些文件的编辑与查看,这时我们都会用到一个编辑器叫Vim,Vim是在我们的终端上显示的,它不像sublime Text或者notepad++这样的编辑软件,但是由于vim的功能非常强大,所以不但没有影响使用人数反而还增加了使用人数。接下来我分享一下我使用vim的一些技巧。vim有多种模式,接下来要介绍两种模式,一个是command模式,我们可以在这个模式下进行...

2018-12-27 16:53:26 270

原创 Java异常处理机制

本文总结的是Java的异常处理机制,其它语言的异常处理与Java的思想是一致的,细节可以自行百度一下。接下来会按照以下目录来总结以下Java异常处理机制。目录Java异常分类Java中异常处理过程 总结Java中常见的异常处理类Java中常见的异常处理函数Java中抛出异常throws throw用户自定义异常Java异常分类Java异常分两大类,E...

2018-12-20 10:04:03 258

原创 MySQL之联合查询

MySQL联合查询是一个非常实用的操作,它将两个查询结果集合并到一个结果集并输出合并的结果。主要通过Union和Union all来实现。联合查询的注意事项1.两个查询语句的查询结果中的列类型要一样。2.两个查询语句的查询结果中的列的数量要相同。3.两个查询语句的查询结果中的列名可以不一致,如果没有特定指定,按照第一个查询语句的列名来显示。UNION和UNION ALL的区...

2018-12-19 11:18:36 1533

原创 开发中总结的一些常用并且实用的Linux命令

以下Linux命令是我在布项目以及一些调试传文件等用到的常用命令,不包含所有命令。设置超级管理员root的密码sudo passwd root切换root(超级管理员)用户su root切换目录cd 目录cd ~ #返回到home目录cd .. #返回上一级cd - #返回上一个使用的目录查看目录下的文件和子目录lsls-l #以列表...

2018-12-18 16:02:40 221

原创 在Ubuntu下配置MySQL服务器、Java环境、tomcat服务器

大多数的Java项目,尤其是web项目都会将项目布到Linux服务器下运行,这就免不了需要在Linux下进行一些环境的搭配以及软件的安装和服务的开启关闭等,接下来,我将从MySQL的安装与启动、Java的环境安装、tomcat服务器的安装与开启这几方面介绍一下,介绍的非常详细,希望得到采纳。我的Linux版本是Ubuntu16,安装的MySQL是5.7,Jdk版本是1.8,tomcat8.5...

2018-12-18 13:23:56 300

原创 浅谈数据库完整性

数据库完整性(Database Integrity)是指数据库中数据在逻辑上的一致性、正确性、有效性和相容性。数据库完整性由各种各样的完整性约束来保证,因此可以说数据库完整性设计就是数据库完整性约束的设计。关系数据库的完整性规则是数据库设计的重要内容。接下来介绍一下数据库的完整性。实体完整性实体完整性指的是表中元组(行)的完整性,为了保证元组之间的非空和唯一性。主要通过设置表的主键来...

2018-12-17 10:05:25 999

原创 MySQL学习进阶篇(十)之存储过程

在数据库项目中,存储过程时经常会用到的,本片博客跟大家谈谈存储过程。定义存储存储过程是一段代码(过程),存储在数据库中的sql组成。存储过程是一段可执行性代码的集合。相比函数,更偏向于业务逻辑。一个存储过程通常用于完成一段业务逻辑,例如数据更新,合成工资等。而一个函数通常专注于某个功能,视为其他程序服务的,需要在其他语句中调用函数才可以,而存储过程不能被其他调用,是自己执行 通过ca...

2018-12-14 21:05:24 227

原创 CryptDB随手笔记之运行在加密技数据上的查询

接下来介绍CryptDB是如何在加密数据上执行SQL查询的。在密态数据库中存在一个威胁,DBMS和管理员不可信,但应用程序和代理服务器是可信的。CryptDB令DBMS服务器在密文上执行SQL查询如在明文中一样。现有的应用程序不需要改变。除了包含运算符(如选择、投影、连接、总计和排序)的查询,DBMS的加密查询通常与原始查询相同,并在某些情况下使用修改后的操作符。       CryptD...

2018-12-14 17:49:19 1435

原创 Java、Python3、C#实现邮件发送总结

发邮件功能几乎在每个项目都会有应用,我之前写了一篇基于Python3实现的一个邮件发送功能的博客,现在我打算写一篇通过目前主流的三大编程语言实现的邮件发送功能的博客。废话不多说,还是需要先提前打开你的邮箱的smtp服务,然后记住那个密码。接下来干活开始。Java实现邮件发送我通过JavaMail类实现的,首先要下载JavaMail.jar文件,javaxmail下载。直接上代码p...

2018-12-14 16:12:33 1387

原创 MySQL学习笔记进阶篇(九)之事务

事务在我们做较为复杂的项目时都会用到,无论用什么数据库都会用到事务处理。MySQL 事务主要用于处理操作量大,复杂度高的数据。事务的一些介绍:事务是指逻辑上的一组操作,组成这组操作的各个单元,要不全成功要不全失败。   - 支持连续SQL的集体成功或集体撤销。   - 事务是数据库的一个功能。   - MySQL需要利用 InnoDB 或 BDB 存储引擎,对自动提交的特性支持完成...

2018-12-14 15:06:29 179

翻译 CryptDB随手笔记(一)

说到密态数据库,不得不说的一个产品就是CryptDB了,CryptDB是由麻省理工Popa团队与2010年提出的。       在线应用程序很容易被窃取敏感信息,因为攻击者可以利用软件漏洞来获得私有数据,并且由于好奇或恶意的关系,管理员可能捕获及泄漏数据。CryptDB是一个系统,在面对SQL数据库支持的应用程序的这些攻击时,提供实用和可证明的机密性。它的工作原理是,通过使用一组高效的SQL...

2018-12-12 14:03:29 2957

原创 MySQL学习笔记进阶篇(八)之数据类型

MySQL数据类型非常的丰富,接下来介绍一下MySQL常用的数据类型。数值类型整型   类型         字节     范围(有符号位)   tinyint     1字节    -128 ~ 127      无符号位:0 ~ 255   smallint    2字节    -32768 ~ 32767   mediumint   3字节    -8388608 ~ 83...

2018-12-12 11:46:14 261 1

原创 MySQL学习笔记进阶篇之字符集编码

MySQL、数据库、表、均可设置编码。数据编码与客户端编码不需一致--查看所有字符集编码项SHOW VARIABLES LIKE 'character_set_%';设置字符集编码通过SET 变量名=变量值 进行设置如果要设置的字符编码都是同一种,可以使用SET NAMES 变量值--设置客户端向服务器发送数据时使用的编码SET character_set_...

2018-12-12 11:25:23 189

原创 ASP.NET中的Web.config的一些配置

1.设置Session的生命周期配置Session的生命周期时有几项配置值1)mode,用于设置存储会话状态,里面有几项可选值,Inproc是表示工作进程自身存储会话状态,off表示禁用会话状态,StateServer表示把会话信息存储在一个单独的ASP.NET状态服务中,SqlServer表示将状态存储在SqlServer服务器中。2)Cookieless,用于设置是否启用Cooki...

2018-12-12 11:11:26 297

原创 MySQL学习笔记(七)之加密函数的使用

MySQL函数内部有一些加密函数,接下来介绍一下有关加密的常用的函数。password(str);对字符串str进行加密。主要是对密码进行加密,貌似新的MySQL移除了该函数,但是MySQL5.5还是有的。MD5(str);MD5加密,经常用于对普通的数据进行加密。AES_ENCRYPT(plaintext,key);通过key为plaintext进行AES加密。AES解密函数...

2018-12-12 11:08:03 342

原创 MySQL学习笔记(六)

今天介绍一下字符串相关的MySQL函数。length(str)求str的长度。lcase(str)与lower(str)将字符串变成小写。ucase(str),upper(str)将字符串变成大写。STRCMP(str1,str2);比较字符串大小,第一个比第二个小返回-1,第一个比第二个大返回1,如果相等返回0。position(str1 in str2)查找...

2018-12-12 10:52:11 182

原创 python3实现简单图片爬虫

最近爬虫比较火,我通过python3实现了一下基本的图片爬虫,当然也适用于文字等爬虫,代码非常简单,只有12行的代码量。接下来介绍一下怎么实现的。首先介绍一下简单的单个网页怎么爬图片。首先你要找到一个要爬虫的网页,比如我要在http://www.nipic.com/design/renwu/mingxing/index.html网页上爬图片,打开网站后,打开开发者模式,观察一下每张图片有什...

2018-12-12 10:21:56 1049

原创 通过Python3.6实现邮件发送

首先你要开启你的邮箱的Smtp服务,我的是qq的,怎么开启邮箱的SMTP服务,可以参照一下我的另一篇博客。https://blog.csdn.net/SpiderManSun/article/details/84964171我通过Python3.6实现了email发送,接下来直接上代码,代码中有注释。from email.header import Headerfrom email...

2018-12-12 08:57:22 752

原创 开启qq邮箱的smtp服务

有的时候我们需要再开发的项目中实现发送email的操作,这时就需要开启邮箱中的SMTP服务了,接下来为大家介绍一下怎么开启SMTP服务的,我是用qq邮箱举例,其他的都差不多。废话不多说,开始上干货。首先登录并进入你的qq邮箱。 进入邮箱首页,选择顶部的设置。 在邮箱设置中选择账户。 找到下面的smtp服务,并选择开启服务。这里面有两个,一个是POP3一个是IMAP,我开启的是IMAP...

2018-12-12 08:48:10 9848 1

原创 MySQL学习笔记(五)

接下来介绍一些数学函数。ABS();绝对值ceiling();上取整floor();下取整greatest();取最大值least();取最小值MOD(2,3);取余2%3余2 PI()求piRAND([n])随机数ROUND(n,m)四舍五入    把n四舍五入,小数点后保留m位TRUNCATE(); 截取SIGN()判断是否为正数  正数返回1,...

2018-12-11 20:25:53 112

原创 MySQL学习笔记(四)

Mysql支持REGEXP的正则表达式:找出以A-D 为开头的snameSELECT * FROM stu WHERE sname REGEXP '^[A-D]';接下来介绍一下与时间有关的函数。获取当前时分秒获取当前的年月日获取当前的时间,年月日时分秒DAYOFWEEK(date)  返回日期date是星期几(1=星期天,2=星期一,……7=星期六,ODB...

2018-12-11 20:12:21 154

转载 MySQL安装与配置

本教程适合于MySQL5.5,大家可以到官网去下载。安装文件存放路径:不能有中文和空格!接下来是配置阶段 

2018-12-11 19:15:16 192

原创 MySQL学习笔记(三)

接下来介绍一下MySQL的查询语句基本的查询语句:查询表的所有数据并显示所有列select * from tb;查询表的所有数据并显示指定列 select col1,col2,col5 from tb;查询结果重命名select sname as 'StudentName',uage as 'StudentAge' from stu;将查询结果去重(DISTI...

2018-12-11 17:43:22 143

原创 MySQL学习笔记(二)

创建一个和已存在的数据表的新表复制表(复制表数据和表结构)create table tb like oldtb;insert into tb select * from olddb;复制表(不复制表结构)create table tb select * from oldtb;插入数据:基本的插入数据方式:insert into stu(列名1,列名2,....) ...

2018-12-11 17:08:54 154

原创 MySQL学习笔记(一)

最近想总结一些MySQL学习笔记,废话不多说,直接上干活。首先是登录MySQL:查看数据库    show databases进入数据库    use 数据库名创建数据库    create database 数据库名删除数据库    drop database 数据库名  创建数据表,例如创建一个user表,user表里包括id,姓名,年龄,为了方便插入,设了个默认值18,...

2018-12-11 16:09:44 192 1

原创 CSS小技巧

1.清除网页的外边距,让网页全屏显示html,body{    margin:0;    padding:0;}2.把图片变为适合屏幕的全屏img{ background-size:cover;}3.把图片放在中间img{ background-position:center;}4.让横向滚动条消失body{ overflow-...

2018-12-11 15:50:28 126

原创 通过Java获取数据表的属性与对应的值

我最近在做一个数据库加密的项目,其中需要获取每个表的属性与对应的值,本来打算用HashMap存储,但是由于Attribute是重复的,理由会有username='peter',username='sam'等这样的重复的Attribute,最后打算写成Attribute=Value这样的格式,并存储在ArrayList中。本方法返回一个二维ArrayList。public ArrayList ...

2018-12-11 15:29:02 1829

原创 完善Java的一些没有的方法

在做项目时,很多时候需要获取字符串中最后一个字符串是什么,为了方便写了一个函数,实现起来很简单,原理就是先获取字符串的长度,然后通过字符串截取获得最后一个字符。以下是代码:public String getLastChar(String str){ if(str==null||str.length()==0){ return null; ...

2018-12-11 15:18:31 153

原创 JDBC获取表的各列的基本信息

很多时候,我们需要查看数据库中的数据表的每个列或部分列的属性,例如列名,数据类型,大小等,以下代码通过Java实现类获取指定表的各列信息,并将信息存储到ArrayList中。public class MySQLHandle { //mysql驱动包名 private static final String DRIVER_NAME = "com.mysql.jdbc.Drive...

2018-12-10 16:59:48 3052

原创 通过Java实现HMAC,将字符串哈希成为全部由字母组成的密文串

以下Java代码可以将任何字符串通过HMAC哈希,并输出成由大写的A到P组成的密文字符串。public class HMAC { private final static String KEY_MAC = "HMACMD5"; /** * 全局数组 */ private final static String[] hexDigits = { "A...

2018-12-10 16:36:11 676

原创 Java实现AES的ECB、CBC、CFB模式

public class AES { /** * AES加密 * * @param plaintext 明文 * @param Key 密钥 * @param EncryptMode AES加密模式,CBC或ECB * @return 该字符串的AES密文值 */ public static String AE...

2018-12-10 16:25:22 9726 1

原创 对sql文件进行读取并通过JDBC批量执行

public class MySQLHandle { //mysql驱动包名 private static final String DRIVER_NAME = "com.mysql.jdbc.Driver"; //数据库连接地址 private static final String URL = "jdbc:mysql://localhost:3306/test...

2018-12-10 16:18:26 3912 1

原创 ASP.NET参数化SQL语句(SQL SERVER)

设计项目时,为了防止SQL注入,有很多种方法,一种是通过编写存储过程来防止SQL注入,使用这种方法可以提高性能,但是对于查询语句可能存在多种不同的SQL语句,这就要编写很多存储过程,还有一种方法是通过参数化,在这里只介绍一下SQL SERVER的。先来介绍查询:普通的查询语句(未将密码加密): select top 1* from adminDB where username='...

2017-03-24 18:30:44 2474

空空如也

空空如也

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

TA关注的人

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