数据库加密

MongoDB 4.2新特性:分布式事务、字段级加密、通配符索引、物化视图

徘徊边缘 提交于 2019-12-29 21:58:04
MongoDB 4.2已经发布,我们来看看它增加了哪些新特性?分布式事务?数据库加密?通配符索引? 在2019年MongoDB World大会上,CTO Eliot Horowitz介绍了MongoDB 4.2中的一些功能,这些功能扩展了其在数据库技术方面的领先地位:分布式事务(Distributed Transactions),字段级加密(Client Side Field Level Encryption),通配符索引(Wildcard Indexing)、按需物化视图(Materialized Views)。 这些都是重大的改进,表明MongoDB在企业级功能方便更加完善。 MongoDB 4.2提升了事务和分析技术水平。它提供大规模的分布式事务的ACID担保和复杂的数据处理流程,还有最先进的加密控制保护机制。我们可以在任何地方运行MongoDB4.2:在本地数据中心,云上、混合云、Atlas云上。我们可以获得阿里云、AWS,Azure和GCP可用的完全托管,云原生的MongoDB服务。阿里云全球第一个实现了MongoDB异地多活架构。可以支持互联网跨国公司的大规模出海业务。 现在使用MongoDB的公司越来越多了,技术架构方案也越来越成熟。MongoDB新特性也是为了满足更多的企业级业务场景需求。 1. MongoDB 4.2 新特性 先来大体上看看有哪些改进,作为4

PHP(超文本预处理器)简介

爱⌒轻易说出口 提交于 2019-12-26 04:17:54
PHP(超文本预处理器) PHP即“ 超文本预处理器 ”,是一种通用开源脚本语言。PHP是在服务器端执行的脚本语言,与C语言类似,是常用的网站编程语言。PHP独特的语法混合了C、Java、Perl以及 PHP 自创的语法。利于学习,使用广泛,主要适用于Web开发领域。 中文名:超文本预处理器 外文名:PHP: Hypertext Preprocessor 编程范型 面向对象、命令式编程 简介 PHP原始为Personal Home Page的缩写,已经正式更名为 "PHP: Hypertext Preprocessor"。自20世纪90年代国内互联网开始发展到现在,互联网信息几乎覆盖了我们日常活动所有知识范畴,并逐渐成为我们生活、学习、工作中必不可少的一部分。据统计,从2003 年开始,我国的网页规模基本保持了翻番的增长速度,并且呈上升趋势。PHP 语言作为当今最热门的网站程序开发语言,它具有成本低、速度快、可移植性好、 内置丰富的函数库等优点,因此被越来越多的企业应用于网站开发中。但随着互联网的不断更新换代,PHP语言也出现了不少问题。 根据动态网站要求,PHP语言作为一种语言程序,其专用性逐渐在应用过程中显现,其技术水平的优劣与否将直接影响网站的运行效率。其特点是具有公开的源代码, 在程序设计上与通用型语言,如C语言相似性较高,因此在操作过程中简单易懂,可操作性强。同时

mysql数据库字段加密函数

三世轮回 提交于 2019-12-24 13:47:51
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> php程序中有内置的aes算法函数可以完成加密和解密,但aes算法有个特点:使用同样的明文和秘钥加密得到的结果每次都不一样,这是它的优点,但在做密文字符串比较的时候就会比较麻烦。 加密:先通过AES加密得到一个二进制的密文,然后把密文用HEX函数转换成16进制,最终得到的字符串长度为64位,就可以插入数据表中了 HEX(AES_ENCRYPT('15','abcdefgh')) 解密:这就要反其道而行,先转回到二进制,然后再解密 AES_DECRYPT(UNHEX(money),'abcdefgh') 表中字段被加密后,仍然可以做各种查询操作: /*在加密字段上使用统计函数*/ SELECT SUM(AES_DECRYPT(UNHEX(money),'abcdefgh')) FROM test; /*加密字段作为比较条件查询*/ SELECT * FROM test WHERE AES_DECRYPT(UNHEX(money),'abcdefgh') = 50; /*查询时获取解密后的明文*/ SELECT AES_DECRYPT(UNHEX(money),'abcdefgh') AS money FROM test; 应用场景:用户注册信息中的密码,比较敏感的财务数据等 来源: oschina 链接:

如何正确对用户密码进行加密?转自https://blog.csdn.net/zhouyan8603/article/details/80473083

时间秒杀一切 提交于 2019-12-23 04:27:12
本文介绍了对密码哈希加密的基础知识,以及什么是正确的加密方式。还介绍了常见的密码破解方法,给出了如何避免密码被破解的思路。相信读者阅读本文后,就会对密码的加密有一个正确的认识,并对密码正确进行加密措施。 作为一名Web开发人员,我们经常需要与用户的帐号系统打交道,而这其中最大的挑战就是如何保护用户的密码。经常会看到用户账户数据库频繁被黑,所以我们必须采取一些措施来保护用户密码,以免导致不必要的数据泄露。 保护密码的最好办法是使用加盐密码哈希( salted password hashing)。 重要警告: 请放弃编写自己的密码哈希加密代码的念头 !因为这件事太容易搞砸了。就算你在大学学过密码学的知识,也应该遵循这个警告。所有人都要谨记这点:不要自己写哈希加密算法! 存储密码的相关问题已经有了成熟的解决方案,就是使用 phpass ,或者在 defuse/password-hashing 或 libsodium 上的 PHP 、 C# 、 Java 和 Ruby 的实现。在对密码进行哈希加密的问题上,人们有很多争论和误解,可能是由于网络上有大量错误信息的原因吧。对密码哈希加密是一件很简单的事,但很多人都犯了错。本文将会重点分享如何进行正确加密用户密码。 密码哈希是什么? hash("hello") =

使用哈希加盐法来为密码加密(补充JAVA的实现)

南楼画角 提交于 2019-12-20 03:23:04
使用哈希加盐法来为密码加密 转自:http://www.cnblogs.com/jfzhu/p/4023439.html 转载请注明出处 (一)为什么要用哈希函数来加密密码 如果你需要保存密码(比如网站用户的密码),你要考虑如何保护这些密码数据,象下面那样直接将密码写入数据库中是极不安全的,因为任何可以打开数据库的人,都将可以直接看到这些密码。 解决的办法是将密码加密后再存储进数据库,比较常用的加密方法是使用哈希函数(Hash Function)。哈希函数的具体定义,大家可以在网上或者相关书籍中查阅到,简单地说,它的特性如下: (1)原始密码经哈希函数计算后得到一个哈希值 (2)改变原始密码,哈希函数计算出的哈希值也会相应改变 (3) 同样的密码,哈希值也是相同的 (4) 哈希函数是单向、不可逆的。也就是说从哈希值,你无法推算出原始的密码是多少 有了哈希函数,我们就可以将密码的哈希值存储进数据库。用户登录网站的时候,我们可以检验用户输入密码的哈希值是否与数据库中的哈希值相同。 由于哈希函数是不可逆的,即使有人打开了数据库,也无法看到用户的密码是多少。 那么存储经过哈希函数加密后的密码是否就是安全的了呢?我们先来看一下几种常见的破解密码的方法。 (二)几种常见的破解密码的方法 最简单、常见的破解方式当属字典破解(Dictionary Attack)和暴力破解(Brute Force

账号密码管理系统Access版本

为君一笑 提交于 2019-12-18 11:27:47
哈哈,花了我整整五天时间,账号密码管理系统软件终于成功编写完成了。由于我的各大论坛的账号密码特别多,记性又不好。所以一直以来都想要这么一个软件的,但是以前学习的都是面向过程的编程语言,一直无法实现这个想法。这个暑假为了做一个程序项目,对记事本实现图形用户界面增删改查操作,所以开始学习C#编程。在花了整整二十天学习Winform编程和研究文件读写流(大多数时间在学习文件读写流上,Winform编程也就学会了几个常用的控件,文件读写流这个边读边写刚开始不会,特别蛋疼),好在经过一番努力学习后终于实现了。在完成这个后,突然想起一直以来想要的这个软件,于是开始动手编写,在快开学的这五天内,简单匆忙简单学习了下Winform数据库编程(账号密码想法是放在数据库里比较好)。编写这个软件刚开始使用的SQL server数据库,但是当我花了三天左右完成时,才发现竟然蛋疼的无法脱机使用。查了资料后知道了用Access数据库可以实现脱机使用。而且之前用过的御剑、啊D、明小子之类渗透软件也大都是用的Access数据库,可移植性很好。因此只好开始又想法将SQL server更换成Access数据库。不停地在百度上转啊转,搞了半天才知道更换也很简单,只要将连接数据库语句更换下,再把Sql换成OleDb即可。更换期间也出了很多未知的蛋疼的问题,编译器查不出来哪里的问题,代码页看出出来哪里不对

Android--数据库GreenDao使用

吃可爱长大的小学妹 提交于 2019-12-18 04:46:06
一、简介 GreenDao 优点: 1.性能高,号称Android最快的关系型数据库 2.内存占用小 3.库文件比较小,小于100K,编译时间低,而且可以避免65K方法限制 4.支持数据库加密 greendao支持SQLCipher进行数据库加密 有关SQLCipher可以参考这篇博客Android数据存储之Sqlite采用SQLCipher数据库加密实战 5.简洁易用的API 二、配置 1、需要在工程(Project)的build.gradle中添加依赖 buildscript { repositories { jcenter ( ) } dependencies { classpath 'com.android.tools.build:gradle:2.0.0' //GreenDao3依赖 classpath 'org.greenrobot:greendao-gradle-plugin:3.2.1' } } 2、在项目(Module)的build.gradle中添加依赖 apply plugin : 'com.android.application' //使用greendaoapply plugin : 'org.greenrobot.greendao' android { compileSdkVersion 23 buildToolsVersion "23.0.2"

4-MySQL DBA笔记-开发进阶

末鹿安然 提交于 2019-12-13 18:10:31
第4章 开发进阶 本章将介绍一些重中之重的数据库开发知识。 在数据库表设计中,范式设计是非常重要的基础理论,因此本章把它放在最前面进行讲解,而这其中又会涉及另一个重要的概念——反范式设计。 接下来会讲述MySQL的权限机制及如何固化安全。 然后介绍慢查询日志及性能管理的部分理念,并讲述数据库的逻辑设计、物理设计、导入导出数据、事务、锁等知识。 最后会提及 MySQL的一些非核心特性,并对于这些特性的使用给出一些建议。 4.1 范式和反范式 4.1.1 范式 什么是范式? 范式是数据库规范化的一个手段,是数据库设计中的一系列原理和技术,用于减少数据库中的数据冗余,并增进数据的一致性。 数据规范化通常是将大表分成较小的表,并且定义它们之间的关系。这样做的目的是为了避免冗余存放数据,并确保数据的一致性。 添加、删除和修改数据等操作可能需要修改多个表,但只需要修改一个地方即可保证所有表中相关数据的一致性(由于数据没有冗余存放,修改某部分数据一般只需要修改一个表即可)。 由于数据分布在多个表之间,因此检索信息可能需要根据表之间的关系联合查询多个表。 数据规范化的实质是简单写、复杂读。 写入操作比较简单,对于不同的信息,分别修改不同的表即可;而读取数据则相对复杂,检索数据的时候,可能需要编写复杂的SQL来联合查询多个表。 常用的范式有第一、第二、第三范式,通常来说

MD5加密算法失效及解决方法

匿名 (未验证) 提交于 2019-12-03 00:03:02
数据库中保存用户密码,不能用明文保存,需要在后端进行加密,再写入数据库。最开始使用 Java 自带的加密算法, MD5Encoder. encode (password.getBytes()); 发现最后得到的 String 类型的字符串为 null。解决办法是引入 commons-codec 包,利用其 BASE64 算法进行加密。 1 <dependency> 2 <groupId> commons - codec </ groupId > 3 <artifactId> commons - codec </ artifactId > 4 <version> 1.12 </ version > 5 </ dependency > 1 //密码加密 2 private String EncodeByBase64 ( String str ) { 3 //确定计算方法 4 try { 5 String s = new String ( Base64 . encodeBase64 ( str . getBytes ( "UTF-8" )) ); 6 return s ; 7 } catch ( UnsupportedEncodingException ex ) { 8 ex . getStackTrace (); 9 } 10 return null ; 11 } 来源:博客园 作者:

springboot druid数据库密码加密

匿名 (未验证) 提交于 2019-12-02 23:51:01
springboot druid数据库密码加密 pom.xml引入jar 生成加密密码 配置数据库文件 工具类 pom.xml引入jar <dependency> <groupId>com.alibaba</groupId> <artifactId>druid-spring-boot-starter</artifactId> <version>1.1.14</version> </dependency> 生成加密密码 输入命令 java -cp D:\Repositories\ricet\com\alibaba\druid\1.1.14\druid-1.1.14.jar com.alibaba.druid.filter.config.ConfigTools 123456 其中:publicKey 为公钥 , password为加密后密码,privateKey为私钥 配置数据库文件 # 数据源配置 spring: datasource: type: com.alibaba.druid.pool.DruidDataSource driverClassName: com.mysql.cj.jdbc.Driver druid: # 主库数据源 master: url: jdbc:mysql://dbmast.confedu.com:3306/da_edu_springboss