赞
踩
明文:待加密信息。
密文:经过加密后的明文。
加密:明文转为密文的过程。
加密算法:明文转为密文的转换算法。
加密密钥:通过加密算法进行加密操作用的密钥。
解密:将密文转为明文的过程。
解密算法:密文转为明文的算法。
解密密钥:通过解密算法进行解密操作用的密钥。
密码分析:截获密文者试图通过分折截获的密文从而推断出原来的明文或密钥的过程。
主动攻击:攻击者非法入侵密码系统,采用伪造、修改、删除等手段向系统注入假消息进行欺骗。(对密文具有破坏作用)。
被动攻击:对一个保密系统采取截获密文井对其进行分析和攻击。(对密文没有破坏作用)。
密码体制:由明文空间、密文空间、密钥空间、加密算法和解密算法五部分构成。
密码协议:也称安全协议,指以密码学为基础的消息交换的通信协议,目的是在网络环境中提供安全的服务。
密码系统:指用于加密、解密的系统。
柯克霍夫原则:数据的安全基于密钥而不是算法的保密。即系统的安全取决于密钥,对密钥保密,对算法公开。——现代密码学设计的基本原则。
名称 | 详细说明 | 应用领域 | 类别 |
---|---|---|---|
受限制算法 | 算法的保密性基于保持算法的秘密 | 军事领域 | 古典密码 |
基于密钥算法 | 算法的保密性基于对密钥的保密 | 现代密码 |
名称 | 别名 | 详细说明 |
---|---|---|
对称密码 | 单钥密码或私钥密码 | 指加密密钥与解密密钥相同。 |
非对称密码 | 双钥密码或公钥密码 | 指加密密钥与解密密钥不同, 密钥分公钥、私钥。 |
对称加密算法 | 单钥密码算法或私钥密码算法 | 指应用于对称密码的加密、解密算法。 |
非对称密码算法 | 双钥密码算法或公钥密码算法 | 指对应于非对称密码的加密、解密算法。 |
分组密码:指加密时将名为分成固定长度的组, 用同一密钥和算法对每一块加密, 输出也是固定长度的密文。多用于网络加密。
流密码:也称序列密码。指加密时每次加密一位或者一个字节明文。
散列函数用来验证数据的完整性。
长度不受限制。
哈希值容易计算。
散列运算过程不可逆。
散列函数相关的算法。
消息摘要算法
MD5 等。
SHA——安全散列算法。
MAC——消息认证码算法。
主要是针对以数字的形式存储的消息进行的处理。
意为开放式系统互联。国际标准组织(国际标准化组织)制定了OSI(Open System Interconnection)模型。这个模型把网络通信的工作分为7层,分别是物理层、数据链路层、网络层、传输层、会话层、表示层和应用层。1 至 4 层被认为是低层,这些层与数据移动密切相关。5 至 7 层是高层,包含应用程序级的数据。每一层负责一项具体的工作,然后把数据传送到下一层。
Java EE Connector Architecture (JCA) is a Java-based tool for connecting application servers and enterprise information systems (EIS) as part of enterprise application integration (EAI) solutions.[buzzword] While JDBC is specifically used to connect Java EE applications to databases, JCA is a more generic architecture for connection to legacy systems. JCA was developed under the Java Community Process as JSR 16 (JCA 1.0), JSR 112 (JCA 1.5) and JSR 322 (JCA 1.6).
JCA(J2EE 连接器架构,Java Connector Architecture)是对 J2EE 标准集的重要补充。因为它注重的是将 Java 程序连接到非 Java 程序和软件包中间件的开发。连接器特指基于 Java 连接器架构的源适配器,其在 J2EE 1.3 规范中被定义。JCA 连接器同时提供了一个重要的能力,即它使 J2EE 应用服务器能够集成任何使用 JCA 适配器的企业信息系统(EIS),大大简化了异构系统的集成。有了 JCA,企业只要购买一个基于 JCA 规范的适配器,就可以将企业应用部署到J2EE服务器上,这样不用编写任何代码就可以实现与 J2EE 应用服务器的集成。JCA 还提供了一个应用服务器和 EIS 连接的标准 Java 解决方案。 JCA 定义了一套标准的接口,用于让连接器把兼容的应用程序服务器无缝的整合起来。同时,定义的另一套标准接口允许客户(或者应用程序服务器的应用程序主机)用一种统一的方法使用连接器。这样,连接器对于跨应用程序服务器就是可移植的,而客户程序成为很轻便的连接器。 JCA 的目标在于企业应用程序集成方面,它提供的标准化体系结构让 J2EE 组件能够对异构 EIS 进行“即插即用”的访问,其中包括 ERP、事务处理、老式数据库系统等。
The Java Cryptography Extension (JCE) is an officially released Standard Extension to the Java Platform and part of Java Cryptography Architecture (JCA). JCE provides a framework and implementation for encryption, key generation and key agreement, and Message Authentication Code (MAC) algorithms. JCE supplements the Java platform, which already includes interfaces and implementations of message digests and digital signatures. Installation is specific to the version of the Java Platform being used, with downloads available for Java 6, Java 7, and Java 8.
JCE(Java Cryptography Extension)是一组包,它们提供用于加密、密钥生成和协商以及 Message Authentication Code(MAC)算法的框架和实现。
它提供对对称、不对称、块和流密码的加密支持,它还支持安全流和密封的对象。它不对外出口,用它开发完成封装后将无法调用。
In computing, the Java Secure Socket Extension (JSSE) provides a set of packages that enable secure Internet communications. It implements a Java technology version of the Secure Sockets Layer (SSL) and the Transport Layer Security (TLS) protocols. It includes functionality for data encryption,[1] server authentication, message integrity, and optional client-authentication.
JSSE, an optional package for Java versions 1.2 and 1.3, became integrated into version 1.4[clarify].
JSSE,即Java™ Secure Socket Extension 。
SSL(Secure Sockets Layer)是JSSE中的重要的部分。SSL是用的最广泛的实现网络的加密协议。SSL用一个密码处理来提供网络安全通信。SSL是基于标准的TCP/IP socket协议的安全增加用于网络通信,所以SSL是位于传输层和应用程序层之间。最普通的使用SSL的是HTTP(Hypertext Transfer Protocol),用于网络页面。
Java Authentication and Authorization Service, or JAAS, pronounced “Jazz”,[1] is the Java implementation of the standard Pluggable Authentication Module (PAM) information security framework.[2] JAAS was introduced as an extension library to the Java Platform, Standard Edition 1.3 and was integrated in version 1.4.[1]
JAAS has as its main goal the separation of concerns of user authentication so that they may be managed independently. While the former authentication mechanism contained information about where the code originated from and who signed that code, JAAS adds a marker about who runs the code. By extending the verification vectors JAAS extends the security architecture for Java applications that require authentication and authorization modules.
Java Authentication and Authorization Service(JAAS,Java 验证和授权 API)提供了灵活和可伸缩的机制来保证客户端或服务器端的 Java 程序。Java 早期的安全框架强调的是通过验证代码的来源和作者,保护用户避免受到下载下来的代码的攻击。JAAS 强调的是通过验证谁在运行代码以及他/她的权限来保护系统免受用户的攻击。它让你能够将一些标准的安全机制,例如 Solaris NIS(网络信息服务)、Windows NT、LDAP(轻量目录存取协议),Kerberos等通过一种通用的,可配置的方式集成到系统当中去。
security.provider.1=sun.security.provider.Sun
security.provider.2=com.sun.net.ssI.internaI.ssI.Provider
security.provider.3=com.sun.rsajca.Provider
security.provider.4=com.sun.crypt0.provider.SunJCE
security.provider.5=sun.security.Jgss.SunProvider
security.provider.6=org.bouncycastle.Jce.provider.BouncyCastIeProvider
使用 JDK 以外的扩展包需要修改资源文件并增加相关的内容, 这是使用 JDK 以外的扩展包的方式之一。
geek@ubuntu:~/geek/tools_my/jdk-11.0.7/conf/security$ ll
total 64
drwxrwxr-x 3 geek geek 4096 May 21 20:57 ./
drwxrwxr-x 4 geek geek 4096 May 21 20:57 ../
-rw-r--r-- 1 geek geek 2180 Mar 12 09:15 java.policy
-rw-r--r-- 1 geek geek 47570 Mar 12 09:15 java.security
drwxrwxr-x 4 geek geek 4096 May 21 20:57 policy/
java.security
消息摘要。
javax.cryppto
安全消息摘要,消息认证(鉴别)码。
java.net.ssl
安全套接字。
Apache。
Base64、二进制、十六进制、字符集编码。
Url 编码 / 解码。
package com.geek.security.base64;
import sun.misc.BASE64Decoder;
import sun.misc.BASE64Encoder;
import java.io.IOException;
public class Base64Demo {
private static String src = "imooc security base64";
public static void main(String[] args) throws IOException {
jdkBase64();
}
private static void jdkBase64() throws IOException {
BASE64Encoder encoder = new BASE64Encoder();
String encode = encoder.encode(src.getBytes());
System.out.println("encode = " + encode);
// aW1vb2Mgc2VjdXJpdHkgYmFzZTY0
BASE64Decoder decoder = new BASE64Decoder();
byte[] bytes = decoder.decodeBuffer(encode);
String decode = new String(bytes);
System.out.println("decode = " + decode);
// imooc security base64
System.out.println("bytes = " + bytes);
// [B@1b6d3586
}
}
<!-- https://mvnrepository.com/artifact/commons-codec/commons-codec -->
<dependency>
<groupId>commons-codec</groupId>
<artifactId>commons-codec</artifactId>
<version>1.14</version>
</dependency>
package com.geek.security.base64;
import org.apache.commons.codec.binary.Base64;
import sun.misc.BASE64Decoder;
import sun.misc.BASE64Encoder;
import java.io.IOException;
public class Base64Demo {
private static String src = "imooc security base64";
public static void main(String[] args) throws IOException {
jdkBase64();
// commonsCodecBase64();
}
private static void commonsCodecBase64() {
byte[] encodeBase64 = Base64.encodeBase64(src.getBytes());
String encode = new String(encodeBase64);
System.out.println("encode = " + encode);
// aW1vb2Mgc2VjdXJpdHkgYmFzZTY0
byte[] decodeBase64 = Base64.decodeBase64(encode);
String decode = new String(decodeBase64);
System.out.println("decode = " + decode);
// imooc security base64
}
private static void jdkBase64() throws IOException {
BASE64Encoder encoder = new BASE64Encoder();
String encode = encoder.encode(src.getBytes());
System.out.println("encode = " + encode);
// aW1vb2Mgc2VjdXJpdHkgYmFzZTY0
BASE64Decoder decoder = new BASE64Decoder();
byte[] bytes = decoder.decodeBuffer(encode);
String decode = new String(bytes);
System.out.println("decode = " + decode);
// imooc security base64
System.out.println("bytes = " + bytes);
// [B@1b6d3586
}
}
<!-- https://mvnrepository.com/artifact/org.bouncycastle/bcprov-jdk15on -->
<dependency>
<groupId>org.bouncycastle</groupId>
<artifactId>bcprov-jdk15on</artifactId>
<version>1.65</version>
</dependency>
package com.geek.security.base64;
import org.apache.commons.codec.binary.Base64;
import sun.misc.BASE64Decoder;
import sun.misc.BASE64Encoder;
import java.io.IOException;
public class Base64Demo {
private static String src = "imooc security base64";
public static void main(String[] args) throws IOException {
// jdkBase64();
// commonsCodecBase64();
bouncyCastleBase64();
}
private static void bouncyCastleBase64() {
byte[] bytes = org.bouncycastle.util.encoders.Base64.encode(src.getBytes());
String encode = new String(bytes);
System.out.println("encode = " + encode);
// aW1vb2Mgc2VjdXJpdHkgYmFzZTY0
byte[] bytes1 = org.bouncycastle.util.encoders.Base64.decode(bytes);
String decode = new String(bytes1);
System.out.println("decode = " + decode);
// imooc security base64
}
}
email。
密钥。
证书文件。
邮件的“历史问题”。
基于 64 个字符的编码算法。
Base 16
Base 32
Url Base64
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。