当前位置: 首页 > news >正文

移动网站建设服务商榆林电商网站建设

移动网站建设服务商,榆林电商网站建设,武进建设局网站首页,沈阳微信网站BouncyCastle#xff0c;即BC#xff0c;其是一款开源的密码包#xff0c;包含了大量的密码算法。 本篇主要演示BC库引入#xff0c;对称加密算法AES、SM4和 非对称加密EC算法的简单实现#xff0c;以下是实现过程。 一、将BC添加到JRE环境 前提#xff1a;已安装JRE环…BouncyCastle即BC其是一款开源的密码包包含了大量的密码算法。 本篇主要演示BC库引入对称加密算法AES、SM4和 非对称加密EC算法的简单实现以下是实现过程。 一、将BC添加到JRE环境 前提已安装JRE环境本地环境为jdk1.8 第一步、修改java.security文件 查找JDK安装位置可执行 where javac 到 目录D:\eclipse-ide\resource\java\jdk1.8.0_151\jre\lib\security找到 java.security 文件管理员方式打开添加以下内容。 security.provider.11org.bouncycastle.jce.provider.BouncyCastleProvider添加位置和效果如下图所示。 第二步、将BC的jar保添加到指定目录 即D:\eclipse-ide\resource\java\jdk1.8.0_151\jre\lib\ext下。 二、将BC库添加到项目 新建项目 - 命名为 bcprovdemo将 bcprov-ext-jdk15on-165.jar复制到项目的 lib文件下。 在 jar包右键- Build Path - Add to Build Patch 将其添加到构建路径下 添加成功如下所示。 三、测试环境中 provider 是否正确 新建Java类-ProviderTest使用到 security 包中的Provider和Security。 import java.security.Provider; import java.security.Security; import java.util.Map;public class ProviderTest {public static void main(String [] args) {// 添加BC库BouncyCastleProvider bcp new BouncyCastleProvider();Security.addProvider(bcp);for(Provider p : Security.getProviders()) {System.out.println(当前遍历的p值为: p);int cout 1;for(Map.EntryObject, Object entry : p.entrySet()) {System.out.println(\tentry.getKey());cout;if(cout5)break;}}} }执行结果如下所示。 其打印的结果即 java.security 文件中的配置信息。 四、对称密钥生成 1对称密钥算法 AES AES可指定生成长度默认为128生成代码如下所示。 import java.security.NoSuchAlgorithmException; import java.security.SecureRandom; import javax.crypto.KeyGenerator; import javax.crypto.SecretKey; import org.bouncycastle.util.encoders.Hex; public class HexTest {void keyg() throws NoSuchAlgorithmException {SecureRandom sr new SecureRandom();// 实例化KeyGenerator kg KeyGenerator.getInstance(AES);// AES默认为128三种长度 128192 256kg.init(192, sr);SecretKey sk kg.generateKey();byte[] b sk.getEncoded();System.out.println(密钥十六进制值为: Hex.toHexString(b));}// 调用密钥public static void main(String[] args) throws NoSuchAlgorithmException {HexTest ht new HexTest();ht.keyg();} }结果如下图所示。 2对称密钥 SM4算法 SM4算法 需要引入 BC库其也可不指定长度实现代码如下所示。 import java.security.NoSuchAlgorithmException; import java.security.SecureRandom; import java.security.Security; import javax.crypto.KeyGenerator; import javax.crypto.SecretKey; import org.bouncycastle.jce.provider.BouncyCastleProvider; import org.bouncycastle.util.encoders.Hex;public class HexTest {void keyg() throws NoSuchAlgorithmException {// 添加BC库BouncyCastleProvider bcp new BouncyCastleProvider();Security.addProvider(bcp);SecureRandom sr new SecureRandom();// 实例化KeyGenerator kg KeyGenerator.getInstance(SM4);// SM4 可不指定长度kg.init(sr);SecretKey sk kg.generateKey();byte[] b sk.getEncoded();System.out.println(SM4-密钥十六进制值为: Hex.toHexString(b));}// 调用密钥public static void main(String[] args) throws NoSuchAlgorithmException {HexTest ht new HexTest();ht.keyg();} } 控制台打印输出如下所示。 五、非对称密钥生成 非对称加密EC算法引入BC库其是以对出现即公钥和私钥。实现代码如下所示。 import java.security.KeyPair; import java.security.KeyPairGenerator; import java.security.NoSuchAlgorithmException; import java.security.NoSuchProviderException; import java.security.Security;import org.bouncycastle.jce.provider.BouncyCastleProvider; import org.bouncycastle.util.encoders.Hex;public class KeyPairTest {public static void main(String[] args) throws NoSuchAlgorithmException, NoSuchProviderException {// 添加BC库BouncyCastleProvider bcp new BouncyCastleProvider();Security.addProvider(bcp);// 密钥对实例KeyPairGenerator kpg KeyPairGenerator.getInstance(EC, BC);// KeyPairGenerator kpg KeyPairGenerator.getInstance(RAS); // 椭圆曲线// 初始化kpg.initialize(256);// 产生密钥对KeyPair key kpg.genKeyPair();byte[] b key.getPublic().getEncoded();// 公钥短,验证签名快System.out.println(生成的公钥为: Hex.toHexString(b));b key.getPrivate().getEncoded();// 私钥长,验证签名慢System.out.println(生成的私钥为: Hex.toHexString(b));} }控制台打印输出如下所示。
http://www.hkea.cn/news/14256506/

相关文章:

  • 苏州专业建站厦门大型服装商城网站建设
  • 如何选择丹阳网站建设网站怎么加内容
  • 大淘客怎样做网站微信公众上传wordpress
  • 作文素材网站郑州seo排名扣费
  • 嘉纪商正网站建设公司2022年新闻大事
  • 公司建网站一般多少钱企业商务网站建设论文
  • 网站建设基本技术app设计界面
  • 公章在线制作网站做不了wordpress 视频页面
  • 自主建站是什么意思济南房产网安居客
  • 河南城市建设招标类网站搜索引擎中 哪些网站可以获得更好的排名
  • 山东做网站公司有哪些室内设计效果图招聘
  • 成都制作网站的公司简介两学一做考学网站
  • 做网站要多大空间做网站的找哪个
  • wordpress国内网站吗正规的手机网站建设
  • 贵阳网站建设搜王道下拉如何提高网页设计
  • 网站开发PRD做模板网站价格
  • 做网站推广的需要了解哪些知识南宁在那里推广网站
  • 怎么做一个门户网站温州网站建设seo
  • 网站制作维护费 归属泉州网络公司都
  • 男装网站模板演示如何提取网页中的视频
  • 织梦教育网站开发电子商务的建站流程
  • 网站开发的目的意义特色创新开发工具有哪些
  • 建设一个网站需要贵阳经济技术开发区网站
  • 大网站开发费用网站优化要怎么做
  • 机械类网站建设网站建设的相关技术方案
  • 合肥最好的网站建设公司排名物联网的网络架构
  • 网站建设基本知识代码做网站攻击
  • 四川省铁路建设有限公司网站广州互联网营销师
  • 安徽网站建设获客企业wordpress调用产品图片
  • 高效网站建设与维护岗位职责快手网页版