我在将纯java Curve25519函数转换为Python等效函数时遇到问题,具体问题与将哈希字符串转换为等效字节的摘要函数有关,java实现:

数据示例:

sP=“这是用于测试的密码短语示例”/**

* Calculate the SHA-256 hash of a string

*

* @param input Data to be hashed

* @return The hash digest

*/

public static byte[] singleDigest(String input) {

byte[] bytes;

try {

bytes = singleDigest(input.getBytes("UTF-8"));

System.out.println("bytes"+bytes);

System.out.println("before singleDigest"+input);

} catch (UnsupportedEncodingException exc) {

bytes = null;

}

return bytes;

}

/**

* Calculate the SHA-256 hash of a byte array

*

* @param input Data to be hashed

* @return The hash digest

*/

public static byte[] singleDigest(byte[] input) {

byte[] bytes;

synchronized (digest) {

digest.reset();

bytes = digest.digest(input);

StringBuffer sb = new StringBuffer();

for (int i = 0; i < bytes.length; i++) {

System.out.println(bytes[i]);

sb.append(String.format("%02x", bytes[i] & 0xFF));

}

System.out.println(sb.toString());

}

return bytes;

}

生成此字节输出:

字节输出:82、-57、124、58、-105、76、123、3、119、-21、121、71、-54、73、-75、54、31、-33、-49、-68、-16、-19、125、-61、-116、-82、96、50、-35、-119、-28、25

对于正数和负数,在python端,我使用此函数将散列字符串转换为字节:

^{pr2}$

我在这里使用列表而不是可变的bytearray,因为bytearray的内部表示(0-256),以及一些散列字符串的输出

不同且仅为正整数:

82、199、124、58、151、76、123、3、119、235、121、71、202、73、181、54、31、217、207、188、240、237、125、196、140、174、96、50、221、137、228、25

我注意到(256-JavaByteOutput[x]==PythonByteOtput[x])当JavaByteOutput为负数时,问题是,如何修改ParseHexString类,使其具有相等的正/负输出,并且我想要纯python代码而不需要库。在

谢谢你的回答。

当做

亚历克斯

java 字符串转哈希_从哈希字符串转换字节,java与python相关推荐

  1. java 写文件 权限不够_教你解决Linux系统中JAVA创建文件后权限不足的问题

    在作业中,项目使用文件上传. 这个功能很常见. 当Kai Ge今天更改其官方帐户时,他遇到了一个问题,即无法访问下载的文件,也无法通过浏览器访问该文件. 它是怎么发生的? 经过许多问题之后,事实证明这 ...

  2. java list有序还是无序_牛批!2w字的Java集合框架面试题精华集(2020最新版),赶紧收藏。...

    一个多月前,作者和一些小伙伴决定做一系列的 Java 知识点常见重要问题的小册,方便用来夯实基础!小册的标准就一个,那就是:取精华,取重点.每一本小册,我们都会充分关注我们所总结的知识点是否达到这个标 ...

  3. c#截取字符串后几位_基础库的字符串设计

    C++在字符串上表现,一直以来很受人诟病,没有一个库的字符串类的表现能让人满意, std的string,mfc的CString,Qt的QString等等字符串类,都存在这样那样的问题,以至于字符串处理 ...

  4. java 时间转为毫秒数_疫情期间面试总结一(java基础方面)

    一.线程池关键参数以及运行原理 1.corePoolSize(核心线程数):线程池中线程的核心数量,线程池创建后池中并没有线程,而是等有任务的时候才去创建线程,如果任务过多并且核心线程数已经用完,则新 ...

  5. java byte char io流_一文带你看懂JAVA IO流,史上最全面的IO教学

    原标题:一文带你看懂JAVA IO流,史上最全面的IO教学 一.IO流是什么 惯例引用百科的回答 流是一种抽象概念,它代表了数据的无结构化传递.按照流的方式进行输入输出,数据被当成无结构的字节序或字符 ...

  6. java io流详解_一文带你看懂JAVA IO流,史上最全面的IO教学啦

    一.IO流是什么 惯例引用百科的回答流是一种抽象概念,它代表了数据的无结构化传递.按照流的方式进行输入输出,数据被当成无结构的字节序或字符序列.从流中取得数据的操作称为提取操作,而向流中添加数据的操作 ...

  7. java对象横转纵_文件的横纵转换

    通过文件的横纵转换对java的相关基础知识进行巩固 应用到的知识点有: 1.流(在此过程中主要用到的BufferedReader和BufferedWriter) 2.集合 重点突破: 对于这个问题重点 ...

  8. java技术全掌握了_你必须掌握的 21 个 Java 核心技术!

    写这篇文章的目的是想总结一下自己这么多年来使用java的一些心得体会,希望可以给大家一些经验,能让大家更好学习和使用Java. 这次介绍的主要内容是和J2SE相关的部分,另外,会在以后再介绍些J2EE ...

  9. perl 哈希数组的哈希_使用哈希检查两个数组是否相似

    perl 哈希数组的哈希 Prerequisite: Hashing data structure 先决条件: 哈希数据结构 Problem statement: 问题陈述: Check whethe ...

  10. java集合转js数值_前端js调用接口转换Map数组数据

    返回Map数据 后端接口返回数据格式 { "code": 1, "msg": "操作成功!", "count": 0, ...

最新文章

  1. 90后大龄女考研二战失败 该何去何从
  2. JAVA自学笔记24
  3. golang 位操作
  4. Linux操作系统中Anaconda的安装
  5. 查看oracle监听服务状态,(总结)Oracle监听服务lsnrctl参数及查询状态详解
  6. oracle 导出 cuow,直通伍伦贡大学的升学保障— 伍伦贡大学学院(UOWC)
  7. 窗口潜水面罩行业调研报告 - 市场现状分析与发展前景预测(2021-2027年)
  8. Centos7安装mongodb
  9. 图片hover且设置transform其父级border-radius失效
  10. dda算法c语言,Python使用DDA算法和中点Bresenham算法画直线
  11. Vscode 配置cmake
  12. Maven到底是个啥?——Maven深入理解
  13. 【CodeVS3100】蜗牛
  14. Trend趋势反垃圾邮件黑名单申诉方法
  15. ORACLE的语言从中文修改为英文
  16. 我们爱分享----200多个js技巧代码
  17. centos7.4配置nginx php,centos7.4下安装配置PHP服务(源码安装)并配置nginx支持php
  18. MYSQL学习记录(8)
  19. cluster_acc计算
  20. Linux十大顶级发行版本

热门文章

  1. 操作系统-百科:Linux
  2. 数学建模 --- 使用工具进行描述性统计
  3. Task03: 变量、常量、枚举(1天) 组队学习 Go编程语言
  4. 2 Linux 修改用户名、修改密码、查看时间、查看进程
  5. RocketMQ不同版本的下载
  6. 最新极光推送在ios模拟器上无法运行
  7. 设计师升职加薪必须知道的10个设计网站
  8. 计算机中专升大专可以换专业吗,中专升大专可以换专业吗
  9. 人工智能 遗传算法 计算函数极值问题
  10. 如何解决Chrome插件安装时出现的“.crx程序包无效”问题