go语言加密解密算法

Go 加密解密算法

开始

加密解密在实际开发中应用比较广泛,常用加解密分为:“对称式”、“非对称式”和”数字签名“。

对称式:对称加密(也叫私钥加密)指加密和解密使用相同密钥的加密算法。具体算法主要有DES算法3DES算法,TDEA算法,Blowfish算法,RC5算法,IDEA算法。

**非对称加密(公钥加密)**:指加密和解密使用不同密钥的加密算法,也称为公私钥加密。具体算法主要有RSAElgamal、背包算法、Rabin、D-H、ECC(椭圆曲线加密算法)。

数字签名:数字签名是非对称密钥加密技术数字摘要技术的应用。主要算法有md5、hmac、sha1等。

md5

MD5信息摘要算法是一种被广泛使用的密码散列函数,可以产生出一个128位(16进制,32个字符)的散列值(hash value),用于确保信息传输完整一致。

查看更多

go语言[]interface 与其他[]类型的转换

go语言 []interface{} 和 其他 []type 之间的转换

https://stackoverflow.com/questions/27689058/convert-string-to-interface

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
package main

import "fmt"

func main() {

x := []string{"a", "b", "c", "d"}
fmt.Printf("%T: %v\n", x, x)

//converting a []string to a []interface{}
y := make([]interface{}, len(x))
for i, v := range x {
y[i] = v
}
fmt.Printf("%T: %v\n", y, y)

//converting a []interface{} to a []string
z := make([]string, len(y))
for i, v := range y {
z[i] = fmt.Sprint(v)
}
fmt.Printf("%T: %v\n", z, z)

}

go语言基础的数据结构

1. 数组和切片

  • 数组类型的值的长度是固定的,而切片类型的值是可变长的
  • 切片的类型字面量中只有元素的类型,而没有长度。切片的长度可以自动地随着其中元素数量的增长而增长,但不会随着元素数量的减少而减少
  • Append 函数总是会返回新的切片,而且如果新切片的容量比原切片的容量更大那么就意味着底层数组也是新的

查看更多

Mysql用户管理

添加用户

以root用户登陆数据库,运行以下命令:
create user zhangyi identified by 'password123' ;
用户为 zhangyi,密码是 password123

授权

命令的格式:grant privilegesCode on dbName.tableName to username@host identified by 'password';
例如:
grant all privileges on zhangyiDB.* to zhangyi@'%' identified by 'zhangyi';
flush privilleges;
上面的语句将 zhangyiDB 数据库的所有操作权限都授权给了用户zhangyi

可以通过 show grants 命令查看权限授予执行的命令
show grants for 'zhangyi';

privilegesCode 表示授予的权限类型,常用的有以下几种类型:

查看更多

Mysql模糊匹配查找

mysql模糊匹配查找

SQL 匹配模式

SQL的模式匹配允许你使用“_”匹配任何单个字符,而“%”匹配任意数目字符(包括零个字符)。在MySQL中,SQL的模式缺省是忽略大小写的。

  • 注意:在你使用SQL模式时,不能使用=或!=;而使用LIKE或NOT LIKE比较操作符。
  • 语法:SELECT 字段 FROM 表 WHERE 某字段 Like 条件
  • 其中关于条件,SQL提供了两种匹配模式:
    1、百分号(%):表示任意个或多个字符。可匹配任意类型和长度的字符。
    2、下划线(_):表示任意单个字符。匹配单个任意字符,它常用来限制表达式的字符长度语句:(可以代表一个中文字符)
查看更多

Mysql表空间以及ibdata1文件解释

一、Mysql系统表空间

Mysql的系统表空间是 InnoDB数据字典,双写缓冲区、更改缓冲区和撤销日志的存储区。如果用户在系统表空间中创建表,而不是在每个表文件中创建表,则还包含用户在系统表空间创建的表信息和索引数据。

系统表空间可以具有一个或多个数据文件。默认情况下,在数据目录中创建一个名为ibdata1的系统表空间数据文件。系统表空间数据的大小和数量由innodb_data_file_path启动选项定义。

另一种表空间:独立表空间,独立表空间模式下,每个innodb表都有自己独立的表空间文件(.ibd文件),存储各种表的索引和数据。

配置项:innodb_file_per_table 指定Mysql使用独立表空间,Mysql5.6以后的版本默认值为ON,Mysql5.6以前的版本默认为OFF

1. 增加系统表空间的大小

增加系统表空间大小的最简单办法就是配置为自动扩展,如下:

查看更多

mysql字符集转换原理剖析及乱码原因

一、mysql字符集和校对

字符集是指一种从二进制编码到某类字符符号的映射。校对是指一组用于某个字符集的排序规则。在Mysql4.1和之后的版本中,每一类编码字符都有其对应的字符集和校对规则。

1. Mysql如何使用字符集

Mysql服务器有默认的字符集和校对规则,每个数据库也有自己的默认值,每个表也有自己的默认值。这是一个逐层继承的默认设置,最终最靠底层的默认设置将影响你创建的对象。这些默认值,至上而下的告诉MYSQL应该使用什么字符集来存储某个列。

在这个“阶梯”的每一层,你都可以指定一个特定的字符集或者让服务器使用它的默认值。

  • 创建数据库时,将根据服务器上的 character_set_server 设置来设定该数据库的默认字符集
查看更多