1、通讯机制:

同一主机间通讯机制:IPC、message quence,shm(共享内存),semerphone

不同主机间通讯机制:socket(ip:port),一般来说socket通讯都是成对出现:CIP:PORT<--->SIP:PORT

2、传输层协议:

tcp、udp、sctp;传输层协议单元为段,用端口区分不同应用

port用来标识进程地址;进程向内核注册使用某端口(独占的)

3、如何保证安全的信息通讯?

ssl:secure socket layer:安全套接字层,ssl是一种规范协议

4、信息安全目标:

保密性:confidentiality;确保通讯的保密性

完整性:integrity;确保信息的完整性,体现在数据的完整性和系统完整性两个层面

有效性(可用性):

5、***类型:

威胁保密性的***:窃听、通信量分析

威胁完整性的***:更改、伪装、重放、否认

威胁可用性的***:决绝服务

6、安全实现手段:安全通讯解决方案

通过技术实现:加密和解密

传统加密方法:替代加密、置换加密

现代加密方法:现代块加密技术,将存在硬盘上的数据,分成块进行加密。

通过服务实现:用于抵御***的服务,也就是说为了实现上述安全目标而特地设计的安全服务。

认证机制

访问控制机制

秘钥算法和协议(专用于密码交换)

6.1、linux系统实现上述解决方案工具主要有两个:openssl、GPG

openssl由三部分组成:

libencrypt库:实现加密解密的库

libssl库:实现ssl安全通信的库

openssl工具:命令行工具,多用途,可以实现前两者的功能

6.2、密钥算法和协议:

对称加密:主要用来加密数据;DES、3DES、AES

公钥加密:主要用来加密对称加密密钥;RSA、DSA

单向加密:主要用来提取数据特征码;md5、sha1、sha224、sha256、sha384、sha512

认证协议:主要用来进行密钥交换

6.2.1、对称加密:

加密和解密使用同一个密钥,但是加密和解密的算法可能不同。

对称加密算法主要有:des(56位加密技术)、3des、aes(advance encryption standard;128bits、192bits、256bits、384bits)、blowfish、twofish、idea、rc6等等;常用的是3des和aes。

对称加密特性:

①、加密解密使用同一个密钥

②、将原始的数据分隔成固定的大小的块,逐个进行加密

对称加密的缺陷:

①密钥过多(体现在服务端和众多客户端通讯时,需要每个通讯都有一个单独的密钥)

②密钥分发困难

6.2.2、公钥加密:

密钥成对出现,有公钥和私钥。

公钥:publickey,公开给所有人;公钥从私钥中提取产生

私钥:secretkey:通过工具创建;使用者自己留存,必须保证其私密性。

公钥加密特性:

①、用公钥加密的数据只能由对应的私钥进行机密,反之亦然。

公钥加密用途:

①、数字签名:主要在于让接收方确认发送发的身份。

②、密钥交换:发送方用对方公钥加密一个对称密钥,发送给对方。

③、数据加密:主要加密对称密钥

数字签名的实现过程:

以a用户和b用户通讯为例

①、a用户发送数据给b用户,a需要用到单向算法提取发送数据的特征码,由于单向算法有雪崩效应,改动很小一部分,特征码就会发生很大变化

②、a用户用自己的私钥加密这段特征码,并将其附加在这段数据的后面(如果用私钥加密原始数据,消耗内存、cpu)

③、a用户生成一个临时的对称加密密钥,并使用这个密钥加密原始数据和特征码,生成的新的数据

④、a用户获取b用户的公钥,并用b用户的公钥加密a的对称密码,将其附在③中新生成数据包的后面,然后将整个数据包发送给b用户。

⑤、b用户用自己的私钥去解密a用户用b的公钥加密的数据,得到③中的数据和④中的加密后的对称密钥并将其解密成明文对称密钥。

⑥、b用户用a的对称密钥解密③中的数据,得到原始数据和原始数据提取的加密后的特征码

⑦、b用户用a的公钥去解密②中的a私钥加密的特征码,如果可以解密,a用户的身份得到验证。

⑧、b用同样的单向加密算法去计算原始数据的特征码,如果一样,完整性得到了验证,否则说明数据被篡改过。

其中①-④说明了加密的过程,⑤-⑧说明了数字签名和完整性验证。但是,此处有个问题,怎么确保对方的公钥是安全的,就是他们需要发送对方的呢?因此有了第三方公证机构(CA:证书颁发机构)

公钥加密常用算法:

DSA:只能用于实现数字签名,不能实现加密解密

RSA:既能实现数字签名又能实现加密、解密。

6.2.3、单向加密:只能实现加密,不能实现解密,用于提取数据指纹

单向加密特征:

定长输出、雪崩效应

单向加密功能:

用于实现完整性

单向加密算法:

md5:messagedigest,消息摘要,5是版本号,128bits定长输出

sha1:secure hash algorithm,1是版本号,160bits定长输出

sha224、sha256、sha384、sha512

注意:对于centos6、7来说,密码加密已从centos5中的md5切换到sha512了。

6.2.4、认证协议:和加密算法相关的协议,密钥交换,IKE(internet key exchange)

密钥交换:IKE

公钥加密:密钥在网上传输

DH(diffie-hellman):密钥不在网上传输,更安全些

6.3、PKI:pulic keyinfrastructure;公钥基础设施

组件如下:

签证机构:CA

注册机构:RA

证书吊销列表:CRL

证书存取库:CB

证书:数字证书标准(x.509),它定义了证书的结构以及认证协议标准

证书组成部分:

①版本号

②序列号

③签名算法ID

④发行者名称

⑤有效期限

⑥主体名称

⑦主体公钥

⑧发行者的唯一标识

⑨主体的唯一标识

⑩拓展信息

11.发行者的签名

其中①-⑤为签证机构信息,⑥-⑩为个人信息,11为发证机构

7、SSL和TLS协议:

ssl:secure socket layer,安全套接字层在ip层和传输层之间衔接,有网警公司开发

ssl v1.0(已废弃)、ssl v2.0(已废弃)、ssl v3.0

tls:transport layer security,传输层协议安全,由ITEF研发

tls v1.0 、tls v1.1 、tls v1.2 、tls v1.3(草案)

tls分层设计:

最底层:基础算法原语的实现,aes,rsa,MD5

向上一层:各种算法的实现

再向上一层:组合算法实现的半层品

最顶层:用各种组件拼装而成的各种成品密码学协议软件。

注意:实现ssl协议和tls协议的软件的有很多,著名的开源软件有:openssl。

8、openssl组件:

libcrypto库:实现加密解密,主要由开发者使用

libssl库:实现ssl功能,主要由开发者使用

openssl:多用途的明林工具

9、ssl会话步骤:

客户端向服务端索要并验证证书

双方协商生成“会话密钥”

双方采用“会话密钥”进行加密通信

ssl会话流程:ssl handshank,有四个阶段

第一阶段:client hello

向服务器端发送①、支持的协议版本,比如tls1.2;②、客户端生成一个随机数,稍后用户生成“会话密钥”,③、支持的加密算法,比如rsa、aes,④、支持的压缩算法

第二阶段:server hello

①、确认使用的加密通信协议版本,比如tls1.2

②、服务器端生成一个随机数,稍后用于生成“会话密钥”

③、确认使用的加密算法

④、服务端发送自己的证书

⑤、索要客户端证书(可省)

第三阶段:client端收到serverhello后的回应

①、验证服务器证书,(证书发放机构、证书完整性、证书持有者、证书有效性、吊销列表等)

②、确认以上信息无误后,取出其公钥

③、发送以下信息给服务器端:

一个随机数:用于服务器上的公钥加密

编码变更通知:表示随后信息都将用双方协定的加密算法加密后发送

客户端握手结束通知

第四阶段:服务端收到客户端发送来的信息

①、收到客户端发送来的第二个随机数,pre-master-key后,计算生成本次会话所用到的“会话密钥”

②、向客户端发送以下信息:

编码变更通知:表示随后的信息都将用双方协定的加密方法和密钥发送

服务端握手结束通知



10、openssl命令:

命令格式:openssl command [ command_opts ] [ command_args ]

openssl命令有如下三类:

标准命令

消息摘要命令

加密命令

[root@localhost httpd]# openssl ?

openssl:Error: '?' is an invalid command.

Standard commands

asn1parse         ca                ciphers           cms

crl               crl2pkcs7         dgst              dh

dhparam           dsa               dsaparam          ec

ecparam           enc               engine            errstr

gendh             gendsa            genpkey           genrsa

nseq              ocsp              passwd            pkcs12

pkcs7             pkcs8             pkey              pkeyparam

pkeyutl           prime             rand              req

rsa               rsautl            s_client          s_server

s_time            sess_id           smime             speed

spkac             ts                verify            version

x509

Message Digest commands (see the `dgst' command for more details)

md2               md4               md5               rmd160

sha               sha1

Cipher commands (see the `enc' command for more details)

aes-128-cbc       aes-128-ecb       aes-192-cbc       aes-192-ecb

aes-256-cbc       aes-256-ecb       base64            bf

bf-cbc            bf-cfb            bf-ecb            bf-ofb

camellia-128-cbc  camellia-128-ecb  camellia-192-cbc  camellia-192-ecb

camellia-256-cbc  camellia-256-ecb  cast              cast-cbc

cast5-cbc         cast5-cfb         cast5-ecb         cast5-ofb

des               des-cbc           des-cfb           des-ecb

des-ede           des-ede-cbc       des-ede-cfb       des-ede-ofb

des-ede3          des-ede3-cbc      des-ede3-cfb      des-ede3-ofb

des-ofb           des3              desx              idea

idea-cbc          idea-cfb          idea-ecb          idea-ofb

rc2               rc2-40-cbc        rc2-64-cbc        rc2-cbc

rc2-cfb           rc2-ecb           rc2-ofb           rc4

rc4-40            seed              seed-cbc          seed-cfb

seed-ecb          seed-ofb          zlib

[root@localhost httpd]#

10.1、openssl实现对称加密:

openssl enc -ciphername [-in filename] [-out filename] [-pass arg] [-e] [-d] [-a/-base64] [-A] [-k password] [-kfile filename] [-K key] [-iv IV] [-S salt] [-salt] [-nosalt]          [-z] [-md] [-p] [-P] [-bufsize number] [-nopad] [-debug] [-none] [-engine id]

工具:openssl enc

支持算法:3des、aes、blowfish、towfish

加密示例:

[root@localhost sh]# openssl enc -e -des3 -a -salt -in /etc/fstab -out /tmp/fstab.cipertext   //-in:要加密的文件,-out:加密后的文件,-e:加密

解密示例:

[root@localhost sh]# openssl enc -d -des3 -a -salt -in /tmp/fstab.cipertext -out /tmp/fstab.plain  //-d:解密

10.2、openssl实现单向加密:

openssl dgst [-md5|-md4|-md2|-sha1|-sha|-mdc2|-ripemd160|-dss1] [-c] [-d] [-hex] [-binary] [-out filename] [-sign filename] [-keyform arg] [-passin arg] [-verify filename]         [-prverify filename] [-signature filename] [-hmac key] [file...]

[md5|md4|md2|sha1|sha|mdc2|ripemd160] [-c] [-d] [file...]

工具:openssl dgst

支持的算法:md5sum、sha1sum、sha224sum、...

加密示例:

[root@localhost sh]# openssl dgst -md5   /etc/fstab

MD5(/etc/fstab)= ec11d9db3a8d8a8dabfe0d98af76ac46

[root@localhost sh]# md5sum /etc/fstab

ec11d9db3a8d8a8dabfe0d98af76ac46  /etc/fstab

[root@localhost sh]#

生成用户密码工具:passwd、openssl passwd

[root@localhost sh]# man sslpasswd

openssl passwd [-crypt] [-1] [-apr1] [-salt string] [-in file] [-stdin] [-noverify] [-quiet] [-table] {password}   //salt:随机数

示例:

[root@localhost sh]# openssl passwd  -1 -salt 12345678   //-1:表示md5加密,salt表示随机数

Password:

$1$12345678$KShFLCowWE89oV0dKisl2/

[root@localhost sh]#

[root@localhost sh]# openssl passwd -1 -salt $(openssl rand -hex 5)

Password:

$1$cccd731d$6j3DLRtJZqurDiprU/7oz0

[root@localhost sh]#

生成随机数:工具openssl rand

查看rand在哪些章节有帮助文档

[root@localhost sh]# whatis rand

rand (3)             - pseudo-random number generator

sslrand (1ssl)       - generate pseudo-random bytes

rand (3p)            - pseudo-random number generator

[root@localhost sh]#

rand命令用法:openssl rand [-out file] [-rand file(s)] [-base64] [-hex] num   //base64表示:用ASCII码表示输出的文件(A-Z),-hex表示仅以16进制(1-F)表示数据

示例:

[root@localhost sh]# openssl rand  -base64 16

QbOTMmR3cpp5+Y2eKIoN3g==

[root@localhost sh]#

[root@localhost sh]# openssl rand  -hex 16

f41d01d6774f77029dd8ea46ca3214e8

[root@localhost sh]#

10.3、openssl实现公钥加密:

公钥加密的三种功能:

加密、解密:(算法:rsa;工具:openssl rsautl)

数字签名:(算法:rsa、dsa,工具:rsautl)

密钥交换:(算法:D-H)

生成密钥步骤:注意:生成密钥对于公钥加密来说,公钥不是生成的,是从私钥中提取出来的 。

①、生成私钥:

[root@localhost sh]# (umask 077;openssl genrsa -out /a.key 50)  //命令放在括号中运行,表示在当前shell的子shell中运行,运行完则退出,避免对当前shell的影响;-out指出生成的密钥存储的位置,50:表示声场密钥的位长。

Generating RSA private key, 50 bit long modulus

.+++++++++++++++++++++++++++

.+++++++++++++++++++++++++++

e is 65537 (0x10001)

[root@localhost sh]# cat /a.key

-----BEGIN RSA PRIVATE KEY-----

MDcCAQACBwNeIm8b7bkCAwEAAQIHAPfq8fZg4QIEAdutBQIEAc/8JQIEANpH6QID

P5cZAgQAtovS

-----END RSA PRIVATE KEY-----

[root@localhost sh]#

②、生成公钥:从私钥中提取。

[root@localhost sh]# openssl rsa -in /a.key -pubout     //-in:指定从哪个文件提取公钥,-pubout:提取并展示出

writing RSA key

-----BEGIN PUBLIC KEY-----

MCIwDQYJKoZIhvcNAQEBBQADEQAwDgIHA14ibxvtuQIDAQAB

-----END PUBLIC KEY-----

[root@localhost sh]#

------------------------------------------------------------------------------------------------------

linux系统上随机数生成器:

/dev/random:仅从熵池中返回随机数,随机数用尽,进程阻塞

/dev/urandom:从熵池中返回随机数,随机数用尽,会利用软件生成伪随机数,不阻塞进程。但是这中不安全。

熵池中随机数来源:

①、硬盘I/0中断时间间隔

②、键盘I/O中断时间间隔

10.4、CA创建

CA有两种类型:公共信任CA、私有CA。

建立私有CA的方法:openssl命令、openca命令

CA的配置文件:[root@localhost sh]# cat /etc/pki/tls/openssl.cnf

构建私有CA步骤:

①、在确定配置为CA的服务器上生成一个自签证书 ②、并为CA提供所需要的目录及文件即可

私有CA配置示例:

①、生成密钥放在/etc/pki/CA/private/目录下 ,文件名必须为/etc/pki/tls/openssl.cnf中配置的名称。

[root@localhost CA]# (umask 077; openssl genrsa -out /etc/pki/CA/private/cakey.pem 40)

[root@localhost CA]# ls /etc/pki/CA/private/ -l   //确保生成的密钥文件的权限为600

total 4

-rw-------. 1 root root 132 Feb  3 10:21 cakey.pem

[root@localhost CA]#

②、生成自签证书(发送申请证书申请):按配置文件要求配置(certificate = /etc/pki/CA/cacert.pem )

req:证书请求及证书生成工具。

[root@localhost private]# openssl req -new -x509 -key /etc/pki/CA/private/cakey.pem -out /etc/pki/CA/cacert.pem -days 365

Country Name (2 letter code) [XX]:cn

State or Province Name (full name) []:beijing

Locality Name (eg, city) [Default City]:beijing

Organization Name (eg, company) [Default Company Ltd]:magedu

Organizational Unit Name (eg, section) []:ops

Common Name (eg, your name or your server's hostname) []:www2.stux.com  //此处要写成客户端访问的服务的主机信息,

Email Address []:

命令解释:

-new:生成新证书签署请求

-x509:生成自签格式证书,专用于创建私有CA时,此处如果不自签,不需要加此项,但是自签,必须要写此项

-key:生成请求时用到的私钥文件路径

-out:生成的请求文件路径;如果自签操作将直接生成签署过的证书

-days:证书的有效时长,单位是days。

③、为ca提供所需要的目录(certs 、crl、 newcerts)和文件(serial、index.txt),如果这几个个文件不存在 则需要手工创建

[root@localhost CA]# mkdir -pv /etc/pki/CA/{certs,crl,newcerts}

[root@localhost CA]# touch  /etc/pki/CA/{serial,index.txt}    //serial:证书序列号,index.txt:证书数据库

[root@localhost CA]# echo 01 > /etc/pki/CA/serial   //写入一个证书序列号。

至此,私有ca创建完成。

要用到证书进行安全通信的服务器,需要向CA请求签署证书,比如https服务器,步骤如下:

①、用到证书的服务器主机生成私钥(以https主机为例)

[root@localhost CA]# mkdir /etc/httpd/ssl

[root@localhost CA]# cd /etc/httpd/ssl

[root@localhost ssl]# (umask 077;openssl genrsa -out httpd.key 2048)

②、用到证书的服务器主机生成证书签署请求:(因为不是自签,所以不用加-x509)

[root@localhost ssl]# openssl req -new -key httpd.key -out httpd.csr -days 365

③、将请求通过可靠方式发送给ca主机,在CA主机上进行签署。由于是在同一台主机上,因此,直接签署。

[root@localhost ssl]# openssl ca -in httpd.csr -out /etc/pki/CA/httpd.crt -days 365

Using configuration from /etc/pki/tls/openssl.cnf

Check that the request matches the signature

Signature ok

Certificate Details:

Serial Number: 1 (0x1)

Validity

Not Before: Feb 7 23:22:12 2018 GMT

Not After : Feb 7 23:22:12 2019 GMT

Subject:

countryName = cn

stateOrProvinceName = beijing

organizationName = magedu

organizationalUnitName = ops

commonName = www.magedu.com

X509v3 extensions:

X509v3 Basic Constraints:

CA:FALSE

Netscape Comment:

OpenSSL Generated Certificate

X509v3 Subject Key Identifier:

93:33:80:F7:C5:12:6E:2A:22:92:E4:0C:70:56:00:D5:C4:76:6E:70

X509v3 Authority Key Identifier:

keyid:77:55:41:C6:1D:5E:77:43:F8:9E:C0:2E:67:75:87:F4:2F:FE:0E:CC

Certificate is to be certified until Feb 7 23:22:12 2019 GMT (365 days)

Sign the certificate? [y/n]:y

1 out of 1 certificate requests certified, commit? [y/n]y

Write out database with 1 new entries

Data Base Updated

[root@localhost ssl]#

④、查看证书信息:(可以在ca和客户机上查看,只要有ca的主机都可以查看)

[root@localhost ssl]# cat /etc/pki/CA/index.txt

V 190207232212Z 01 unknown /C=cn/ST=beijing/O=magedu/OU=ops/CN=www.magedu.com

[root@localhost ssl]#

或 [root@localhost CA]# openssl x509 -in httpd.crt -noout -serial -subject

serial=01

subject= /C=cn/ST=beijing/O=magedu/OU=ops/CN=www.magedu.com

[root@localhost CA]#

⑤、将CA签署过的证书发送给请求的服务器。由于是本机签署,所以不发送,拷贝签署的证书到指定位置。注意:此时的httpd.csr(请求签署文件)可以删除了

[root@localhost CA]# cp /etc/pki/CA/httpd.crt  /etc/httpd/ssl/

10.5、吊销证书:一般私有ca搭建,不用吊销,如果要吊销,一般会用openca工具实现。

①、客户端获取要吊销证书的serial(序列号),(在使用证书的主机上执行)

[root@localhost ssl]# openssl x509 -in /etc/httpd/ssl/httpd.crt -noout -serial -subject

serial=01

subject= /C=cn/ST=beijing/O=magedu/OU=ops/CN=www.magedu.com

[root@localhost ssl]#

②、CA端主机吊销证书

先根据客户提交的serial和subject信息,对比与本机数据库index.txt中存储的是否一致。

[root@localhost ssl]# openssl ca -revoke /etc/pki/CA/newcerts/01.pem

Using configuration from /etc/pki/tls/openssl.cnf

Revoking Certificate 01.

Data Base Updated

[root@localhost ssl]#

③、生成吊销证书编号(第一次吊销证书时执行)

[root@localhost ssl]# echo 01 > /etc/pki/CA/crlnumber

④、更新证书吊销列表

[root@localhost CA]# openssl ca -gencrl -out thisca.crl

⑤、查看crl文件:

#openssl crl -in /PATH/FROM/CRL_FILE.crl -noout -text

转载于:https://blog.51cto.com/10631377/2066212

17、加密解密技术介绍相关推荐

  1. Linux 加密解密技术基础及OpenSSL介绍

    Linux 加密解密技术基础 基础概念 信息安全防护的目标 安全防护环节 安全攻击类型(STRIDE) 安全设计的基本原则 常用的安全技术 安全的解决方案 1.加密和解密 2.服务 3.密钥算法和协议 ...

  2. IOS加密技术之——3DES加密解密技术(记录)

    IOS常用加密技术有三种:3DES.SHA1和MD5.其中,对称加密技术有:3DES和SHA1:非对称加密技术有:MD5: 对称加密:加密解密用的是同一个密钥. 非对称加密:生成公有密钥和私有密钥.一 ...

  3. 加密解密技术基础及用OpenSSL创建私有CA

    1.加密解密技术基础 (1)进程通信 传输层协议有TCP,UDP,SCTP等,端口号port表示进程地址,进程向内核注册独占使用某端口. 同一主机上的进程间通信方式:进程间通信(IPC), 消息队列( ...

  4. 开放平台的消息加密解密技术方案-柚果云开发日志

    一,消息加密解密 1) 注意:开放平台的消息加密解密技术方案基AES加解密算法 常见错误: xml 格式不对:如写成了 (s 小写了且 p 和>中间有空格 公众平台网站提供了修改 Encodin ...

  5. 第四节:IO、序列化和反序列化、加密解密技术

    一. IO读写 这里主要包括文件的读.写.移动.复制.删除.文件夹的创建.文件夹的删除等常规操作. 注意:这里需要特别注意,对于普通的控制台程序和Web程序,将"相对路径"转换成& ...

  6. java中解密技术是什么_详解Java 加密解密技术的分类和归纳

    这篇文章主要介绍了Java加密解密基础分类方法汇总的相关资料,需要的朋友可以参考下 Java 加密解密基础: 密码学是研究编制密码和破译密码的技术科学.研究密码变化的客观规律,应用于编制密码以保守通信 ...

  7. 加密解密技术基础、PKI及创建私有私有CA

    Linux基础中的加密.解密及openssl  数据为什么要加密?       由于互联网刚开始时使用的人非常少,在互联网中交流信息的人都比较"单纯"几乎没有安全问题:但随着互联网 ...

  8. 使用 ChatGPT 模型实现 JavaScript 加密解密技术

    以下是一个使用 ChatGPT 模型实现混淆加密解密的案例代码.该代码使用 JavaScript 编写,并且使用了 TensorFlow.js 库来加载和执行 ChatGPT 模型.代码的目的是将输入 ...

  9. 一步一步教你加密解密技术——软件保护技术

    第二节 反跟踪技术 1.Anti-Debug 1.MeltICE子类型类型:检测SoftICE.TRW2000 平台:Windows9x.Windows NT 原理:用CreateFileA( )或_ ...

最新文章

  1. OpenSessionInView模式
  2. oracle 窗口函数over
  3. matlab散点拟合系数,matlab离散型数据拟合方程,求系数,哪个大神能说说方法
  4. postgresql数据库基础
  5. 推荐系统实战系列(python版).rar_python实战音乐推荐系统
  6. Java Web实训项目:西蒙购物网(下)
  7. vCenter Events
  8. 小程序--按钮返回上页
  9. CentOS7中密码登录失败锁定设置
  10. linux 动态输出函数名,控制linux动态链接库导出函数
  11. 阿里巴巴面经、面试流程、面试题
  12. redis-trib.rb 下载
  13. PHP 函数的完整参考手册
  14. oracle数据库建立外键级联删除
  15. 投资最重要的事读后感_《投资最重要的事》读后感1800字
  16. 次世代游戏美术资源开发全流程及常用的软件
  17. 快手AI 实验室Y-Lab 招聘
  18. 提升工作效率的神器:电脑版番茄工作软件
  19. Debut of Hyper-V, departure of Gates usher[引导,展示,招待员] in new era for Microsoft
  20. IBM POWER750硬盘背板介绍和如何配置分区

热门文章

  1. IDEA 代码生成插件 CodeMaker
  2. Java虚拟机学习(7):对象内存分配与回收
  3. cover letter 和response letter的写法
  4. 用JavaScript玩转计算机图形学(一)光线追踪入门
  5. 用MXnet实战深度学习之一:安装GPU版mxnet并跑一个MNIST手写数字识别 (zz)
  6. 卷积Groups Group Convolutions
  7. 感知器 Perceptron
  8. 一个fork的面试题
  9. Hadoop Map/Reduce教程
  10. 【python图像处理】python绘制饼状图