实现 RFC 7539的ChaCha20 and ChaCha20-Poly1305加密算法

RFC7748定义的秘钥协商方案更高效, 更安全. JDK增加两个新的接口

XECPublicKey 和 XECPrivateKey

KeyPairGenerator kpg = KeyPairGenerator.getInstance(“XDH”);NamedParameterSpec paramSpec = new NamedParameterSpec(“X25519”);kpg.initialize(paramSpec);KeyPair kp = kgp.generateKeyPair();KeyFactory kf = KeyFactory.getInstance(“XDH”);BigInteger u = new BigInteger(“xxx”);XECPublicKeySpec pubSpec = new XECPublicKeySpec(paramSpec, u);PublicKey pubKey = kf.generatePublic(pubSpec);KeyAgreement ka = KeyAgreement.getInstance(“XDH”);ka.init(kp.getPrivate());ka.doPhase(pubKey, true);byte[] secret = ka.generateSecret();

转载于:https://www.cnblogs.com/androidsuperman/p/10360181.html

java 11 实现RFC7539中指定的ChaCha20和Poly1305两种加密算法, 代替RC4相关推荐

  1. java 金钱计算_Java中涉及到金钱计算方法的两种方式

    一.不直接使用float和double计算金钱的原因 java中涉及到浮点计算,就会有误差, float和double只能用来做科学计算或者是工程计算,在商业计算中我们要用 java.math.Big ...

  2. Java删除properties配置文件中指定键值的代码

    将开发过程较好的一些内容片段记录起来,下面的内容段是关于Java删除properties配置文件中指定键值的内容. public static boolean deleteKeyValue4Pro(S ...

  3. Java 循环删除list中指定元素

    Java 循环删除list中指定元素 1.for循环遍历删除指定元素 2.增强for循环删除指定元素 3.iterator删除指定元素 1.for循环遍历删除指定元素 List<String&g ...

  4. java数组循环扩容_Java中实现数组动态扩容的两种方法

    Java中实现数组动态扩容的两种方法 java中初始化一个数组需要定义数组的容量,而在我们使用数组时往往会遇到数组容量不够的情况,此时我们就需要通过动态扩容的方式来来根据需求扩大数组的容量. 我们可以 ...

  5. java代码二进制转为十六进制_Java 中二进制转换成十六进制的两种实现方法

    Java 中二进制转换成十六进制的两种实现方法 每个字节转成16进制,方法1 /** * 每个字节转成16进制,方法1 * * @param result */ private static Stri ...

  6. java语言的多态性及特点_Java中的方法的多态性有两种形式:( )和( )。_学小易找答案...

    [填空题]已知函数 ,则微分 . [填空题]. [单选题]71.用转动小滑板法车圆锥时产生( )误差的原因是小滑板转动角度计算错误. [单选题] [填空题]Java中的方法的多态性有两种形式:( )和 ...

  7. Java版数据结构之单向链表 新增,有序新增的两种方式,修改和删除(CRUD)

    Java版数据结构之单向链表 CRUD Java版数据结构之单向链表 新增,有序新增的两种方式,修改和删除; 留了一个疑问; 我的代码仓库:https://github.com/zhuangbinan ...

  8. shell 不等于_关于shell编程中的整数值比较的两种方式的简单操作实例

    谈一谈关于shell编程中的整数值比较的两种方式 Shell编程有时处理一个对象时,需要我们对对象进行测试. 只有符合要求的才采取下一步操作,这样做的好处可以避免程序出错. 这个测试的对象可以是文件. ...

  9. DLL中导出函数的声明有两种方式

    本文引用自:VC编程时DLL中导出函数的声明有两种方式 一种方式是:在函数声明中加上__declspec(dllexport): 另外一种方式是:采用模块定义(.def)文件声明,(.def)文件为链 ...

最新文章

  1. 批量梯度下降(BGD)、随机梯度下降(SGD)以及小批量梯度下降(MBGD)的理解
  2. PowerDesigner使用教程 —— 概念数据模型详解
  3. 【控制】《多无人机协同控制技术》周伟老师-第12章-基于 Multi-Agent 的多无人机协同控制仿真平台的设计与实现
  4. 反病毒引擎设计全解(二)
  5. 3.odoo的学习(odoo中的视图:tree视图、form视图、search视图)
  6. Android-----Resources
  7. java语言编程基础_java语言编程基础
  8. Mybatis高级-resultMap之collection聚集
  9. C语言enum关键字
  10. 题解 P5065 【[Ynoi2014]不归之人与望眼欲穿的人们】
  11. 拓端tecdat|TensorFlow 2.0 keras开发深度学习模型实例:多层感知器(MLP),卷积神经网络(CNN)和递归神经网络(RNN)
  12. Mac下Eclipse内置Tomcat端口被占用问题的解决办法
  13. Laravel文档梳理10、请求生命的周期
  14. Python爬虫实战:css加密 动态字体练习 猿人学比赛题目七题详解
  15. ftp服务器项目,ftp服务器项目手册.doc
  16. Excel基础(14)条件格式与公式
  17. Python 小程序:计算24点
  18. 0xFFFF的Debug
  19. window10 20H2安卓模拟器VT检测不到问题解决方法
  20. 8除以2表示什么意思_数字含义大全

热门文章

  1. 【LeetCode 719】 Find K-th Smallest Pair Distance
  2. 【多式联运】基于matlab粒子群结合遗传算法求解陆海空多式联运问题【含Matlab源码 1963期】
  3. joa运行oracle,蚂蚁金服自研数据库OceanBase登顶全球第一,打破Oracle维持九年的世界纪录...
  4. 前置仓、VMI仓、VOI、寄售
  5. 微信自带的翻译功能,让你与外国朋友轻松沟通
  6. linux如何统计目录下的文件个数,linux怎么查看一个目录下的文件数量
  7. Introduce·艺术类学科核心期刊推荐之《中国文艺评论》
  8. Centos8.2云服务器下安装和卸载Java JDK
  9. 怎么批量打印CAD文件?CAD文件批量打印教程
  10. 南邮 OJ 2047 地铁环线