# cryptography **Repository Path**: sky_kia/cryptography ## Basic Information - **Project Name**: cryptography - **Description**: Java密码学 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2021-04-21 - **Last Updated**: 2021-04-23 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ## 关于非标准库 import sun.misc.BASE64Decoder; 一直以来Base64算法的加密解密都是使用sun.misc包下的BASE64Encoder及BASE64Decoder来进行的。 但是这个类是sun公司的内部方法,并没有在Java API中公开过, 不属于JDK标准库范畴,但在JDK中包含了该类,可以直接使用。但是在Eclipse和MyEclipse中直接使用,却找不到该类。 在Jdk rt.jar 包中包含的目录 src com oracle sun java <----- Java规范中的源码 javax launcher org sun <------ sun公司内部的源码 详情 : https://blog.csdn.net/ni_hao_fan/article/details/95315193?utm_term=javart.jar%E8%AF%A6%E8%A7%A3&utm_medium=distribute.pc_aggpage_search_result.none-task-blog-2~all~sobaiduweb~default-2-95315193&spm=3001.4430 misc其实是英文miscellaneous的前四个字母,杂项、混合体、大杂烩的意思 JavaSE 标准类库功能有限, 需要有人拓展; 整个 jre 中 不仅仅包含 tr.jar 还有其他的各种 jar 为什么 idea debug 走着走着就散了, 就没有源码了, 其实 Java 开放的源码仅仅是 javeSE 标准库的源码, 其他jar 的源码 有些是没有的; com.sun.security.cert.internal.x509.X509V1CertImpl 这个类, 就没有源码; ## Java 安全领域 Java安全领域由4个部分组成: JCA( Java机密体系结构 Java Cryptography Architecture) ; JCE( Java 加密扩展包 Java Cryptography Extension) ; JSSE( Java 安全套接字扩展包 Java Secure Sockets Extension) ; JAAS( Java鉴别与安全服务 Java Authentication and Authenication Serivce ) ; ### jca Java密码体系结构简介:Java Cryptography Architecture (JCA) Reference Guide 包含一个“提供者”体系结构和一组用于数字签名,消息摘要(哈希),证书和证书验证,加密(对称/非对称块/流密码),密钥生成管理和安全随机数生成等等。 这些API允许开发人员将安全性轻松集成到应用程序代码中。 JCA包含两个软件组件 - 定义和支持提供者为其提供实现的加密服务的框架。这个框架包含了诸如java.security,javax.crypto,javax.crypto.spec和javax.crypto.interfaces等软件包。 - Sun,SunRsaSign,SunJCE等实际提供者都包含了具体的加密实现。 ### jce D:\Program Files\Java\jdk1.8.0_202\jre\lib\jce.jar 由各大厂商实现; Java语言只是一个平台, 自己定义规范; 各大计算机产品厂商自己去接入; ( 数据库, 加密, office, 图形....) org.bouncycastle bcprov-jdk15on 1.62 jca 和 jce 只是定义规范 ### jsse D:\Program Files\Java\jdk1.8.0_202\jre\lib\jsse.jar ### jaas https://blog.csdn.net/m0_37962779/article/details/78348560 参考 D:\Program Files\Java\jdk1.8.0_202\jre\lib\security\java.security BC指Bouncy Castle CC指Commons Codec 都是第三方拓展包 javax.crypto.Cipher 这个类看不到源码就是因为 美国政府对涉及到加密算法和强加密的软件技术产品进行出口管制和限制,基于这个法律的要求,JDK 不能提供有关强加密的源代码。 ## 难点 整观各个行业, 最难的点还是 无法去实践的 点; 上大学的时候, 硬件专业就是难以实践; 其实 加密解密 难点还是数字证书这一章节; 个人开发无法去获取数字证书; 数字证书是 归程序员管, 还是 归 运营管? Windows 证书管理工具: certmgr.msc 直接输入命令即可 TrustE、VeriSign、McAfee、eTRUST 以及 TrustGuard 有哪些区别?费用大致是多少?电商最好申请哪几个? 除了Mcafee,这几个都有SSL证书吧?是想买证书吗?这几家提供的证书其实都差不多,价格当然是VerSign最贵。 对于电商,只需要申请EV证书就可以了,能保证浏览器的地址栏变成绿色,给用户明显的提示。除了这几家, 还有很多更便宜一些的EV证书,最便宜的大概是Godaddy了。