mysql
4.1版本之前是mysql323加密,mysql
4.1和之后的版本都是mysqlsha1加密,
mysql数据库中自带old_password(str)和password(str)函数,它们均可以在mysql数据库里进行查询,前者是mysql323加密,后者是mysqlsha1方式加密。
(1)以mysql323方式加密
select old_password('111111')
(2)以mysqlsha1方式加密
select
password('111111')
mysql323加密中生成的是16位字符串,而在mysqlsha1中生存的是41位字符串,其中*是不加入实际的密码运算中,通过观察在很多用户中都携带了"*",在实际破解过程中去掉"*",也就是说mysqlsha1加密的密码的实际位数是40位。
给SQLite数据库加密解密的方法:1、创建空的sqlite数据库。
//数据库名的后缀你可以直接指定,甚至没有后缀都可以
//方法一:创建一个空sqlite数据库,用IO的方式
FileStream
fs
=
File.Create(“c:\\test.db“)
//方法二:用SQLiteConnection
SQLiteConnection.CreateFile(“c:\\test.db“)
创建的数据库是个0字节的文件。
2、创建加密的空sqlite数据库
//创建一个密码为password的空的sqlite数据库
SQLiteConnection.CreateFile(“c:\\test2.db“)
SQLiteConnection
cnn
=
new
SQLiteConnection(“Data
Source=c:\\test2.db“)
SQLiteConnection
cnn
=
new
SQLiteConnection(“Data
Source=D:\\test2.db“)
cnn.Open()
cnn.ChangePassword(“password“)
3、给未加密的数据库加密
SQLiteConnection
cnn
=
new
SQLiteConnection(“Data
Source=c:\\test.db“)
cnn.Open()
cnn.ChangePassword(“password“)
4、打开加密sqlite数据库
//方法一
SQLiteConnection
cnn
=
new
SQLiteConnection(“Data
Source=c:\\test2.db“)
cnn.SetPassword(“password“)
cnn.Open()
//方法二
SQLiteConnectionStringBuilder
builder
=
new
SQLiteConnectionStringBuilder()
builder.DataSource
=
@”c:\test.db“
builder.Password
=
@”password“
SQLiteConnection
cnn
=
new
SQLiteConnection(builder.ConnectionString)
cnn
.Open()
除了用上述方法给SQLite数据库加密以外,您还可以使用专业的文件加密软件将SQLite数据库加密。
超级加密
3000采用先进的加密算法,使你的文件和文件夹加密后,真正的达到超高的加密强度,让你的加密数据无懈可击。
超级加密3000使用起来,只要点击需要加密的文件的右键,即可轻松实现文件的加密。
解密只要双击已加密文件,输入密码即可轻松搞定。
用SQLCipher进行数据库加密。SQLite目前已经是比较流行的数据存储 *** 作的API了。Android和iOS系统提供的API中 *** 作数据库默认均采用了SQLite方案。而SQLCipher是基于SQLite的加密数据库存取方案,集成相对比较快捷而且透明,在一定程度上保证了数据的安全。
代码设置:
如果你用的是系统sqlite3的API,则代码基本不用变,因为SQLCipher是基于系统的sqlite3API扩展的;
如果你用的是FMDB,更无需担心,因为FMDB是封装的系统sqlite3API;
唯一需要做的,就是初始化打开数据库文件sqlite3_open之后,紧跟着执行sqlite3_key设置数据库加密的密钥,于是sqlcipher集成工作就完成了。如果你用的是FMDB,可以直接用setKey方法;如果不是,也可以去FMDataBase.m源码中拷贝这个方法的逻辑,方便调用
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)