参考:http://www.cnblogs.com/JeffreySun/archive/2010/06/24/1627247.html

https://baike.baidu.com/item/https/285356

https://www.cnblogs.com/xmqa/p/7601635.html

HTTPS(全称:Hyper Text Transfer Protocol over Secure Socket Layer),是以安全为目标的HTTP通道,简单讲是HTTP的安全版。即HTTP下加入SSL层,HTTPS的安全基础是SSL,因此加密的详细内容就需要SSL。 它是一个URI scheme(抽象标识符体系),句法类同http:体系。用于安全的HTTP数据传输。https:URL表明它使用了HTTP,但HTTPS存在不同于HTTP的默认端口及一个加密/身份验证层(在HTTP与TCP之间)。

也就是说它的主要作用可以分为两种:一种是建立一个信息安全通道,来保证数据传输的安全;另一种就是确认网站的真实性,凡是使用了 https 的网站,都可以通过点击浏览器地址栏的锁头标志来查看网站认证之后的真实信息,也可以通过 CA 机构颁发的安全签章来查询 [2]  。

HTTPS和HTTP的区别

超文本传输协议HTTP协议被用于在Web浏览器和网站服务器之间传递信息。HTTP协议以明文方式发送内容,不提供任何方式的数据加密,如果攻击者截取了Web浏览器和网站服务器之间的传输报文,就可以直接读懂其中的信息,因此HTTP协议不适合传输一些敏感信息,比如信用卡号、密码等。

为了解决HTTP协议的这一缺陷,需要使用另一种协议:安全套接字层超文本传输协议HTTPS。为了数据传输的安全,HTTPS在HTTP的基础上加入了SSL协议,SSL依靠证书来验证服务器的身份,并为浏览器和服务器之间的通信加密。

HTTPS和HTTP的区别主要为以下四点:

一、https协议需要到ca申请证书,一般免费证书很少,需要交费。

二、http是超文本传输协议,信息是明文传输,https 则是具有安全性的ssl加密传输协议。

三、http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。

四、http的连接很简单,是无状态的;HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,比http协议安全。

信任主机的问题

采用https的服务器必须从CA (Certificate Authority)申请一个用于证明服务器用途类型的证书。该证书只有用于对应的服务器的时候,客户端才信任此主机。所以所有的银行系统网站,关键部分应用都是https 的。客户通过信任该证书,从而信任了该主机。其实这样做效率很低,但是银行更侧重安全。这一点对局域网对内提供服务处的服务器没有任何意义。局域网中的服务器,采用的证书不管是自己发布的还是从公众的地方发布的,其客户端都是自己人,所以该局域网中的客户端也就肯定信任该服务器。

通讯过程中的数据的泄密和被篡改

1. 一般意义上的https,就是服务器有一个证书。

a) 主要目的是保证服务器就是他声称的服务器,这个跟第一点一样。

b)服务端和客户端之间的所有通讯,都是加密的。

i. 具体讲,是客户端产生一个对称的密钥,通过服务器的证书来交换密钥,即一般意义上的握手过程。

ii. 接下来所有的信息往来就都是加密的。第三方即使截获,也没有任何意义,因为他没有密钥,当然篡改也就没有什么意义了。

2. 少许对客户端有要求的情况下,会要求客户端也必须有一个证书。

a) 这里客户端证书,其实就类似表示个人信息的时候,除了用户名/密码,还有一个CA 认证过的身份。因为个人证书一般来说是别人无法模拟的,所有这样能够更深的确认自己的身份。

b) 目前大多数个人银行的专业版是这种做法,具体证书可能是拿U盘(即U盾)作为一个备份的载体。

CA 相关术语:

◆Issuer (证书的发布机构)

指出是什么机构发布的这个证书,也就是指明这个证书是哪个公司创建的(只是创建证书,不是指证书的使用者)。对于上面的这个证书来说,就是指"SecureTrust CA"这个机构。

◆Valid from , Valid to (证书的有效期)

也就是证书的有效时间,或者说证书的使用期限。 过了有效期限,证书就会作废,不能使用了。

◆Public key (公钥)

这个我们在前面介绍公钥密码体制时介绍过,公钥是用来对消息进行加密的,第2章的例子中经常用到的。这个数字证书的公钥是2048位的,它的值可以在图的中间的那个对话框中看得到,是很长的一串数字。

◆Subject (主题)

这个证书是发布给谁的,或者说证书的所有者,一般是某个人或者某个公司名称、机构的名称、公司网站的网址等。 对于这里的证书来说,证书的所有者是Trustwave这个公司。

◆Signature algorithm (签名所使用的算法)

就是指的这个数字证书的数字签名所使用的加密算法,这样就可以使用证书发布机构的证书里面的公钥,根据这个算法对指纹进行解密。指纹的加密结果就是数字签名(第1.5节中解释过数字签名)。

◆Thumbprint, Thumbprint algorithm (指纹以及指纹算法)

这个是用来保证证书的完整性的,也就是说确保证书没有被修改过,这东西的作用和2.7中说到的第3个问题类似。 其原理就是在发布证书时,发布者根据指纹算法(一个hash算法)计算整个证书的hash值(指纹)并和证书放在一起,使用者在打开证书时,自己也根据指纹算法计算一下证书的hash值(指纹),如果和刚开始的值对得上,就说明证书没有被修改过,因为证书的内容被修改后,根据证书的内容计算的出的hash值(指纹)是会变化的。 注意,这个指纹会使用"SecureTrust CA"这个证书机构的私钥用签名算法(Signature algorithm)加密后和证书放在一起。

注意,为了保证安全,在证书的发布机构发布证书时,证书的指纹和指纹算法,都会加密后再和证书放到一起发布,以防有人修改指纹后伪造相应的数字证书。这里问题又来了,证书的指纹和指纹算法用什么加密呢?他们是用证书发布机构的私钥进行加密的。可以用证书发布机构的公钥对指纹和指纹算法解密,也就是说证书发布机构除了给别人发布证书外,他自己本身也有自己的证书。证书发布机构的证书是哪里来的呢???这个证书发布机构的数字证书(一般由他自己生成)在我们的操作系统刚安装好时(例如windows xp等操作系统),这些证书发布机构的数字证书就已经被微软(或者其它操作系统的开发机构)安装在操作系统中了,微软等公司会根据一些权威安全机构的评估选取一些信誉很好并且通过一定的安全认证的证书发布机构,把这些证书发布机构的证书默认就安装在操作系统里面了,并且设置为操作系统信任的数字证书。这些证书发布机构自己持有与他自己的数字证书对应的私钥,他会用这个私钥加密所有他发布的证书的指纹作为数字签名。

如何向证书的发布机构去申请证书

举个例子方便大家理解,假设我们公司"ABC Company"花了1000块钱,向一个证书发布机构"SecureTrust CA"为我们自己的公司"ABC Company"申请了一张证书,注意,这个证书发布机构"SecureTrust CA"是一个大家公认并被一些权威机构接受的证书发布机构,我们的操作系统里面已经安装了"SecureTrust CA"的证书。"SecureTrust CA"在给我们发布证书时,把Issuer,Public key,Subject,Valid from,Valid to等信息以明文的形式写到证书里面,然后用一个指纹算法计算出这些数字证书内容的一个指纹,并把指纹和指纹算法用自己的私钥进行加密,然后和证书的内容一起发布,同时"SecureTrust CA"还会给一个我们公司"ABC Company"的私钥给到我们。我们花了1000块钱买的这个证书的内容如下:

×××××××××××××××证书内容开始×××××××××××××××××

Issuer : SecureTrust CA

Subject : ABC Company

Valid from : 某个日期

Valid to: 某个日期

Public Key : 一串很长的数字

…… 其它的一些证书内容……

{证书的指纹和计算指纹所使用的指纹算法}[SecureTrust CA的私钥|RSA]      //这个就是"SecureTrust CA"对这个证书的一个数字签名,表示这个证书确实是他发布的,有什么问题他会负责(收了我们1000块,出了问题肯定要负责任的)

×××××××××××××××证书内容结束×××××××××××××××××

               // {} 表示RSA加密后的内容,[ | ]表示用什么密钥和算法进行加密

我们"ABC Company"申请到这个证书后,我们把证书投入使用,我们在通信过程开始时会把证书发给对方,对方如何检查这个证书的确是合法的并且是我们"ABC Company"公司的证书呢?首先应用程序(对方通信用的程序,例如IE、OUTLook等)读取证书中的Issuer(发布机构)为"SecureTrust CA" ,然后会在操作系统中受信任的发布机构的证书中去找"SecureTrust CA"的证书,如果找不到,那说明证书的发布机构是个水货发布机构,证书可能有问题,程序会给出一个错误信息。 如果在系统中找到了"SecureTrust CA"的证书,那么应用程序就会从证书中取出"SecureTrust CA"的公钥,然后对我们"ABC Company"公司的证书里面的指纹和指纹算法用这个公钥进行解密,然后使用这个指纹算法计算"ABC Company"证书的指纹,将这个计算的指纹与放在证书中的指纹对比,如果一致,说明"ABC Company"的证书肯定没有被修改过并且证书是"SecureTrust CA" 发布的,证书中的公钥肯定是"ABC Company"的。对方然后就可以放心的使用这个公钥和我们"ABC Company"进行通信了。

到此我们已经大概了解https是什么?能做些什么?如何工作的?下面自己生成一个自己证书,然后开启https

方式一:使用keytool

keytool支持以下参数

C:\Program Files\Java\jdk1.8.0_171\bin>keytool
密钥和证书管理工具命令:-certreq            生成证书请求-changealias        更改条目的别名-delete             删除条目-exportcert         导出证书-genkeypair         生成密钥对-genseckey          生成密钥-gencert            根据证书请求生成证书-importcert         导入证书或证书链-importpass         导入口令-importkeystore     从其他密钥库导入一个或所有条目-keypasswd          更改条目的密钥口令-list               列出密钥库中的条目-printcert          打印证书内容-printcertreq       打印证书请求的内容-printcrl           打印 CRL 文件的内容-storepasswd        更改密钥库的存储口令使用 "keytool -command_name -help" 获取 command_name 的用法C:\Program Files\Java\jdk1.8.0_171\bin>

生成JKS密钥库,并查看证书

C:\Program Files\Java\jdk1.8.0_171\bin>keytool -genkey -alias "tomcat_store" -keyalg "RSA" -keysize 2048 -validity 3650 -keypass "microstack_tomcat" -keystore "D:\tomcat_store.keystore" -storetype JKS -storepass "microstack_store" -dname "CN=Sleeber, OU=Hazelnuts, O=MicroStack, L=ChaoYang, ST=BeiJing, C=China"Warning:
JKS 密钥库使用专用格式。建议使用 "keytool -importkeystore -srckeystore D:\tomcat_store.keystore -destkeystore D:\tomcat_store.keystore -deststoretype pkcs12" 迁移到行业标准格式 PKCS12。C:\Program Files\Java\jdk1.8.0_171\bin>keytool -importkeystore -srcalias "tomcat_store" -srckeystore D:\tomcat_store.keystore -srcstorepass "microstack_store" -srckeypass "microstack_tomcat" -destkeystore D:\tomcat_store.keystore -deststoretype pkcs12 -destkeypass "microstack_tomcat"
警告: PKCS12 密钥库不支持其他存储和密钥口令。正在忽略用户指定的-destkeypass值。Warning:
已将 "D:\tomcat_store.keystore" 迁移到 Non JKS/JCEKS。将 JKS 密钥库作为 "D:\tomcat_store.keystore.old" 进行了备份。C:\Program Files\Java\jdk1.8.0_171\bin>keytool -list  -v -keystore "D:\tomcat_store.keystore" -storepass "microstack_store"
密钥库类型: JKS
密钥库提供方: SUN您的密钥库包含 1 个条目别名: tomcat_store
创建日期: 2018-8-16
条目类型: PrivateKeyEntry
证书链长度: 1
证书[1]:
所有者: CN=Sleeber, OU=Hazelnuts, O=MicroStack, L=ChaoYang, ST=BeiJing, C=China
发布者: CN=Sleeber, OU=Hazelnuts, O=MicroStack, L=ChaoYang, ST=BeiJing, C=China
序列号: 3df65df6
有效期为 Thu Aug 16 16:05:06 CST 2018 至 Sun Aug 13 16:05:06 CST 2028
证书指纹:MD5:  7F:E5:D2:28:8F:E1:17:C1:CF:2B:4A:5B:40:44:3B:21SHA1: BF:21:1E:30:61:1E:F5:B6:4F:9C:36:16:F1:03:A7:D5:26:3D:AD:77SHA256: 1D:D8:99:0F:91:6D:0E:1C:19:4A:45:83:E6:4A:90:D6:C9:C9:3B:7C:C5:8E:55:E4:66:34:67:2E:F8:3A:0A:28
签名算法名称: SHA256withRSA
主体公共密钥算法: 2048 位 RSA 密钥
版本: 3扩展:#1: ObjectId: 2.5.29.14 Criticality=false
SubjectKeyIdentifier [
KeyIdentifier [
0000: F7 04 54 5E 4D 7C 86 91   4E B1 27 EB 49 7F 6A A0  ..T^M...N.'.I.j.
0010: B1 A8 24 6A                                        ..$j
]
]*******************************************
*******************************************C:\Program Files\Java\jdk1.8.0_171\bin>keytool -list  -rfc -keystore "D:\tomcat_store.keystore" -storepass "microstack_store"
密钥库类型: JKS
密钥库提供方: SUN您的密钥库包含 1 个条目别名: tomcat_store
创建日期: 2018-8-16
条目类型: PrivateKeyEntry
证书链长度: 1
证书[1]:
-----BEGIN CERTIFICATE-----
MIIDfzCCAmegAwIBAgIEPfZd9jANBgkqhkiG9w0BAQsFADBwMQ4wDAYDVQQGEwVD
aGluYTEQMA4GA1UECBMHQmVpSmluZzERMA8GA1UEBxMIQ2hhb1lhbmcxEzARBgNV
BAoTCk1pY3JvU3RhY2sxEjAQBgNVBAsTCUhhemVsbnV0czEQMA4GA1UEAxMHU2xl
ZWJlcjAeFw0xODA4MTYwODA1MDZaFw0yODA4MTMwODA1MDZaMHAxDjAMBgNVBAYT
BUNoaW5hMRAwDgYDVQQIEwdCZWlKaW5nMREwDwYDVQQHEwhDaGFvWWFuZzETMBEG
A1UEChMKTWljcm9TdGFjazESMBAGA1UECxMJSGF6ZWxudXRzMRAwDgYDVQQDEwdT
bGVlYmVyMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5RR9u3EPSqsY
n85wAZbE+NnK7defcPU32JJTaQUZWl4z37qiE+/6Tj6sI6XR1IIW8Fid4nGrgIZA
AtHFg43kjSyu/nry0ZGt16gLLeUFc0uBSFBBHlGzTEaGPyE5RILd/acSvMstYFVf
hJNnENLjcAAqTiqtERIbWEn70R6EEBv+gpOpA81cs0MWo0tavbdc7mZpX+iNTG/i
3VJJBpgc+8iY8p/q9fIgDi3Ks4Bg8Ua51lrHpDpVPFOYyy0MlJapShok/HPJbmag
Wb7lNzZW9uVCVhY3Ixw0iEmARwpv/MhKcvkmpn1e7/E0Nr32T1YpfcwLMWb/XK5y
KphSf+kc4QIDAQABoyEwHzAdBgNVHQ4EFgQU9wRUXk18hpFOsSfrSX9qoLGoJGow
DQYJKoZIhvcNAQELBQADggEBABOnntJoq7fY/jbXuU+C4dy1sPEtnwxXSvWFE4RS
CqNonOVZOKBoHhNi3+v63lUojT4Gh7aaP6QFlrRIsnU5MS4aTJKZCPl67JFQrRmp
HROHu5XRI2942IwXmbxgjo/tbkGnM/hh63XwpbLwGa3qJCNwtjw46H4RpsJVPO7A
x4FxSG4JXHpTQO5cC17NgQfv6G4esMOhEV9ftK2dB4DRHEFU+SRQ6BnH13/ud9al
djrLoinSNG+83vmMIHJ7/feWw17u3JDPSOfQ9i+L4hIiiQPIHzabfQejAdrzEMZj
HDWvdEwNEhxsJnkNquEfgyOryDmg7BZYQm9AH6rNxx4RjKc=
-----END CERTIFICATE-----*******************************************
*******************************************C:\Program Files\Java\jdk1.8.0_171\bin>

或是采用下面语句:

C:\Program Files\Java\jdk1.8.0_171\bin>keytool -genkey -alias "tomcat_store" -keyalg "RSA" -keysize 2048 -validity 3650 -keypass "microstack_tomcat" -keystore "D:\tomcat_store.keystore" -storetype PKCS12 -storepass "microstack_store" -dname "CN=Sleeber, OU=Hazelnuts, O=MicroStack, L=ChaoYang, ST=BeiJing, C=China"
警告: PKCS12 密钥库不支持其他存储和密钥口令。正在忽略用户指定的-keypass值。C:\Program Files\Java\jdk1.8.0_171\bin>keytool -list  -v -keystore "D:\tomcat_store.keystore" -storepass "microstack_store"
密钥库类型: JKS
密钥库提供方: SUN您的密钥库包含 1 个条目别名: tomcat_store
创建日期: 2018-8-16
条目类型: PrivateKeyEntry
证书链长度: 1
证书[1]:
所有者: CN=Sleeber, OU=Hazelnuts, O=MicroStack, L=ChaoYang, ST=BeiJing, C=China
发布者: CN=Sleeber, OU=Hazelnuts, O=MicroStack, L=ChaoYang, ST=BeiJing, C=China
序列号: 57f1f548
有效期为 Thu Aug 16 16:09:38 CST 2018 至 Sun Aug 13 16:09:38 CST 2028
证书指纹:MD5:  93:88:FD:FF:4F:26:7A:07:99:40:2A:15:57:A1:91:73SHA1: 22:13:C9:0F:BF:3A:85:3E:D0:2A:14:6A:E5:02:1A:93:25:74:F2:99SHA256: 71:9E:5B:91:7C:33:0D:83:7E:33:5C:DC:AC:EA:33:AD:A4:FD:DD:C5:33:05:77:9D:B4:01:92:81:21:CD:2E:E2
签名算法名称: SHA256withRSA
主体公共密钥算法: 2048 位 RSA 密钥
版本: 3扩展:#1: ObjectId: 2.5.29.14 Criticality=false
SubjectKeyIdentifier [
KeyIdentifier [
0000: A6 3E F8 77 8C DE 1A 7F   AE 26 2F 7F E2 1C 5F B5  .>.w.....&/..._.
0010: C5 09 B5 36                                        ...6
]
]*******************************************
*******************************************C:\Program Files\Java\jdk1.8.0_171\bin>

导出证书CA


C:\Program Files\Java\jdk1.8.0_171\bin>keytool -export -alias "tomcat_store" -keystore "D:\tomcat_store.keystore" -storetype PKCS12 -storepass "microstack_store" -rfc -file "D:\tomcat_store.cer"
存储在文件 <D:\tomcat_store.cer> 中的证书C:\Program Files\Java\jdk1.8.0_171\bin>keytool -printcert -file "D:\tomcat_store.cer"
所有者: CN=Sleeber, OU=Hazelnuts, O=MicroStack, L=ChaoYang, ST=BeiJing, C=China
发布者: CN=Sleeber, OU=Hazelnuts, O=MicroStack, L=ChaoYang, ST=BeiJing, C=China
序列号: 3df65df6
有效期为 Thu Aug 16 16:05:06 CST 2018 至 Sun Aug 13 16:05:06 CST 2028
证书指纹:MD5:  7F:E5:D2:28:8F:E1:17:C1:CF:2B:4A:5B:40:44:3B:21SHA1: BF:21:1E:30:61:1E:F5:B6:4F:9C:36:16:F1:03:A7:D5:26:3D:AD:77SHA256: 1D:D8:99:0F:91:6D:0E:1C:19:4A:45:83:E6:4A:90:D6:C9:C9:3B:7C:C5:8E:55:E4:66:34:67:2E:F8:3A:0A:28
签名算法名称: SHA256withRSA
主体公共密钥算法: 2048 位 RSA 密钥
版本: 3扩展:#1: ObjectId: 2.5.29.14 Criticality=false
SubjectKeyIdentifier [
KeyIdentifier [
0000: F7 04 54 5E 4D 7C 86 91   4E B1 27 EB 49 7F 6A A0  ..T^M...N.'.I.j.
0010: B1 A8 24 6A                                        ..$j
]
]C:\Program Files\Java\jdk1.8.0_171\bin>

这个CA证书就是发给客户端用来验证服务器的。

tomcat配置:

这里使用的是apache-tomcat-8.5.32 windows 版本:

修改conf/server.xml文件中以下章节:

1、注释掉8080端口配置

 <!--<Connector port="8080" protocol="HTTP/1.1"connectionTimeout="20000"redirectPort="8443" />-->

2、取消注释8443端口配置,将生成的正式和密码配置到keystoreFile="**\tomcat.keystore" keystorePass="*****"

    <Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol"maxThreads="150" SSLEnabled="true"keystoreFile="C:\program.files\apache-tomcat-8.5.32\tomcat_store.keystore" keystorePass="microstack_store"><!--<SSLHostConfig><Certificate certificateKeystoreFile="conf/localhost-rsa.jks"type="RSA" /></SSLHostConfig>--></Connector>

3、重新启动tomcat,使用https://localhost:8443/ 访问就可以了

Keytool生成数字证书 + Tomcat https 配置相关推荐

  1. OpenSSL 把cer证书链以及key文件生成keystore,tomcat https配置

    最近接触的项目中用到HTTPS,并且申请了证书以及私钥,这一块接触的少 先整理出来,谨防以后忘记.因为是tomcat中配置的https,需要将证书转成keystore文件,通过openssl 先通过证 ...

  2. Tomcat8配置Https协议,Tomcat配置Https安全访问,Tomcat Https配置

    Tomcat8配置Https协议,Tomcat配置Https安全访问,Tomcat Https配置 ============================== ©Copyright 蕃薯耀 2017 ...

  3. 使用JDK自带工具keytool生成ssl证书

    使用JDK自带工具keytool生成ssl证书 HTTPS简介 超文本传输安全协议(英语:Hypertext Transfer Protocol Secure,缩写:HTTPS,常称为HTTP ove ...

  4. keytool生成ssl证书

    使用JDK自带工具keytool生成ssl证书 HTTPS简介 超文本传输安全协议(英语:Hypertext Transfer Protocol Secure,缩写:HTTPS,常称为HTTP ove ...

  5. 数字证书原理-HTTPS通信如何保证通信安全?只用对称和非对称加密就可以了吗?为什么需要数字证书?

    文中首先解释了加密解密的一些基础知识和概念,然后通过一个加密通信过程的例子说明了加密算法的作用,以及数字证书的出现所起的作用.接着对数字证书做一个详细的解释,并讨论一下windows中数字证书的管理, ...

  6. 【下】安全HTTPS-全面详解对称加密,非对称加密,数字签名,数字证书和HTTPS

    此文章转载来源于http://blog.csdn.net/tenfyguo/article/details/40958727点击打开链接 1.  HTTPS 1.1. 什么是HTTPS HTTPS(H ...

  7. 通俗理解数字签名,ssl数字证书和https

    前言 最近在开发关于PDF合同文档电子签章的功能,大概意思就是在一份PDF合同上签名,盖章,使其具有法律效应.签章有法律效应必须满足两个条件: 能够证明签名,盖章者是谁,无法抵赖 PDF合同在签章后不 ...

  8. 对称加密、非对称加密、RSA、消息摘要、数字签名、数字证书与 HTTPS 简介

    文章目录 1.加密算法简介 1.1 对称加密(Symmetric Key Algorithms) 1.2 非对称加密(Asymmetric Key Algorithms) 1.3 非对称加密 RSA ...

  9. 【数据安全】一、通俗理解数字签名,数字证书和https

    通俗理解数字签名,数字证书和https 前言 最近在开发关于PDF合同文档电子签章的功能,大概意思就是在一份PDF合同上签名,盖章,使其具有法律效应.签章有法律效应必须满足两个条件: 能够证明签名,盖 ...

最新文章

  1. iOS开发中用到的一些第三方库
  2. Android之关于图表
  3. 批改网作文提交时分析不出来_小学生作文写作从哪些方面提高呢?
  4. java linux download
  5. linux下使用sed批量替换关键词(带斜杠处理+kaggle路径批量替换)
  6. 对象变为指定格式的数组
  7. EBS业务学习之应收管理
  8. linux安装中文输入法sc,Linux下安装Discuz_7.2_FULL_SC_GBK
  9. 下载的模型的位置(例如resnet18.pth)
  10. httpclient java 异步_Java的异步HttpClient
  11. VCGLib中邻接关系的实现
  12. android之uniapp原生打包
  13. 计算机毕业设计之 [含论文+答辩PPT+任务书+中期检查表+源码等]S2SH动漫论坛[包运行成功]
  14. 学校无线网络覆盖方案
  15. DVM,ART,JVM之间的关系
  16. 公司邮箱精选-国际通用的电子邮箱有哪些?
  17. 红外温度传感器的全球与中国市场2022-2028年:技术、参与者、趋势、市场规模及占有率研究报告
  18. 上拉加载更多其他方法
  19. springboot毕设项目流动人口信息管理系统9i8kh(java+VUE+Mybatis+Maven+Mysql)
  20. python自动化------问卷星刷问卷3.0版本

热门文章

  1. SALSA:基于Hi-C辅助组装长读长组装结果
  2. Qt Quick 4小时入门-安晓辉-专题视频课程
  3. 《痞子衡嵌入式半月刊》 第 19 期
  4. 2048游戏英雄榜java_2048游戏攻略 2048分数排行榜详解
  5. vue element-ui Radio单选框默认值选不中的原因:混用字符和数字
  6. 埃拉托色尼筛选法c语言求最大公约数,用埃拉托色尼筛算法求两个数最大公约数C++的实现...
  7. 算法笔记 之 埃拉托色尼筛选法(筛选质数)
  8. ArcGIS——dwg与shp转换原理
  9. excel文字显示图标集_创建自己的Excel图标集
  10. 如何在CentOS 8上安装Docker