byte数组和正数BigInteger之间的相互转换
旧代码
public static void main(String[] args) {SecureRandom random = new SecureRandom();byte[] key = new byte[16];random.nextBytes(key);BigInteger bigInteger = new BigInteger(key);System.out.println("old:" + Arrays.toString(key));System.out.println(bigInteger);System.out.println("new:" + Arrays.toString(bigInteger.toByteArray()));}
虽然这段代码可以进行正常转换,但是BigInteger不是正数范围,在密码学计算中,都要求是正数
指定byte数组为正数BigInteger
BigInteger m = new BigInteger(1, bytesMessage);
正数BigInteger,会有符号位,去除第一个符号位0,还原得到原始数组
public static byte[] toByteArray(BigInteger bi) {byte[] array = bi.toByteArray();if (array[0] == 0) {byte[] tmp = new byte[array.length - 1];System.arraycopy(array, 1, tmp, 0, tmp.length);array = tmp;}
转载于:https://www.cnblogs.com/victor2302/p/11018189.html
byte数组和正数BigInteger之间的相互转换相关推荐
- Java中List和数组Array和String之间的相互转换
Java中List和数组Array和String之间的相互转换 之前面试的时候遇到一个问题,先给大家分享一下.问:我想分别得到list,string和数组的长度,我能通过什么代码来得到? 这个问题先留 ...
- Byte[]、Image、Bitmap 之间的相互转换
/// <summary> /// 将图片Image转换成Byte[] /// </summary> /// <param ...
- php中对象(object)与数组(array)之间的相互转换
/*** 数组 转 对象** @param array $arr 数组* @return object*/ function array_to_object($arr) {if (gettype($a ...
- java字符串字节_Java中字符串与byte数组之间的相互转换
前言 Java与其他语言编写的程序进行tcp/ip socket通讯时,通讯内容一般都转换成byte数组型,java在字符与数组转换也是非常方便的.下面跟我一起来了解一下字符串与byte之间转换的原理 ...
- php byte字节数组转stream,IStream与TStream之间的相互转换
IStream与TStream之间的相互转换 更新时间:2008年08月01日 00:48:51 作者: IStream与TStream之间的相互转换的代码 procedure TForm1.Bu ...
- 数组和list之间的相互转换
数组和list之间的相互转换 数组转list 遍历 Arrays.asList()方法(有局限) Collections.addAll() java8 stream流 list转数组 toArray( ...
- java byte转16进制_Java 十六进制(Hex)与byte数组之间的转换
一.十六进制(Hex)与字节(byte)的概念 十六进制(Hex):计算机中数据的一种表示方法,它由0-9,A-F组成,字母不区分大小写.与10进制的对应关系是:0-9对应0-9:A-F对应10-15 ...
- byte[]数组和int之间的转换
这里简单记录下两种转换方式: 第一种: 1.int与byte[]之间的转换(类似的byte short,long型) [java] view plaincopy /** * 将int数值转换为占四个字 ...
- 接口请求,上传byte数组byte[]数据异常,负数变正数/负数变63
接口请求,上传byte数组byte[]数据异常,负数变正数/负数变63 参考文章: (1)接口请求,上传byte数组byte[]数据异常,负数变正数/负数变63 (2)https://www.cnbl ...
最新文章
- 页面布局让footer居页面底部_网站各页面该如何布局关键词优化提升排名?
- Mozilla宣布年底前放弃支持Persona登录服务
- EMIF的两个接口EMIFA和EMIFB分析与比较
- (0004) iOS 开发之CocoaPods 升级过程
- Cause: invalid code lengths set
- 使用 Spring HATEOAS 开发 REST 服务--转
- 一刀传世网页破天服务器同步,一刀传世破天1844服开服时间表_一刀传世新区开服预告_第一手游网手游开服表...
- Java基础类冒泡排序_Java基础 -- 冒泡排序算法(带详细注释)
- Django model 反向引用中的related_name
- 仅需1分钟,让你的电脑变无线路由器
- 生产环境一次诡异的空指针问题,反转了4次
- sql server添加列
- Chrome浏览器启动命令行参数大全
- 数据库作业8:SQL练习5 - SELECT(嵌套查询EXISTS、集合查询、基于派生表的查询)
- windows创建文件硬连接
- win10 增加右键在此处打开命令行菜单
- 8421码,5421码,2421码,余3码的区别
- UVa 1025 (DAG 上的动态规划,有固定终点的最短时间,逆推法)
- 微信小程序java服务_微信小程序访问webService(Java)
- 淘宝开放平台 获取商品信息api权限获取