小编god*_*god的帖子

在本机java中从字节数组私钥生成EC公钥(7+)

我正在尝试学习一些加密编码,并生成了当前保存在字节数组( byte[] privatekey )中的 32 字节私钥。我知道公钥是使用secp256k1命名的椭圆曲线参数和公式生成的,其中publickey = G * privatekey,其中 G 是椭圆曲线上的某个点(ECPoint?),但我无法将该命名参数规范和公式转换为实际编码公钥。java.security.*我知道自 java 7 以来,和包中包含一些类java.security.spec.*可以用简短的代码来执行此操作,但我找不到一个很好的示例来说明如何在不使用第三方库的情况下执行此操作。

这个比特币 stackexchange 链接包含所有理论答案以及出色的 python 和 C# 代码,但没有 Java 代码

编辑/更新:我尝试使用以下代码获取我需要的内容:

String secp256k1_G_uncompressed_string = "0479BE667EF9DCBBAC55A06295CE870B07029BFCDB2DCE28D959F2815B16F81798483ADA7726A3C4655DA4FBFC0E1108A8FD17B448A68554199C47D08FFB10D4B8";
byte[] secp256k1_G_uncompressed_bytes = DatatypeConverter.parseHexBinary(secp256k1_G_uncompressed_string);
String privatekeystring = "1184CD2CDD640CA42CFC3A091C51D549B2F016D454B2774019C2B2D2E08529FD";
byte[] privatekeybytes = DatatypeConverter.parseHexBinary(privatekeystring);
BigInteger secp256k1_G_num = new BigInteger(1, secp256k1_G_uncompressed_bytes);
BigInteger privatekey_num = new BigInteger(1, privatekeybytes);
BigInteger curvepoint = secp256k1_G_num.multiply(privatekey_num);
byte[] publickeybytes = curvepoint.toByteArray();
System.out.println(DatatypeConverter.printHexBinary(privatekeybytes));
System.out.println(DatatypeConverter.printHexBinary(publickeybytes));
Run Code Online (Sandbox Code Playgroud)

应该使用正确编码生成的公钥是这样的:

04d0988bfa799f7d7ef9ab3de97ef481cd0f75d2367ad456607647edde665d6f6 fbdd594388756a7beaf73b4822bc22d36e9bda7db82df2b8b623673eefc0b7495

但正在生成的公钥是这样的:

4E6801418BB6EF9F462F69830F82EB51BB9224219B9D89C8C34FB746297F59779D8B986194181BD7AB99DC7E3086914EA13C4B37E05716CADCA0AE391CE81C4B85E0F09E8 628F0F81692B5D08D0D8B9E20615A5D23DE0F591D02C650554BB1D8

java elliptic-curve public-key

3
推荐指数
1
解决办法
9488
查看次数

将数据中心的单个分区上的数十亿个文件迁移到s3的最佳方法?

我们有一个数据中心,带有一个到AWS的10G直接连接电路.在数据中心,我们有一个IBM XIV存储基础架构,其GPFS文件系统在单个顶级目录中包含1.5亿个图像(每个约50k).我们可以整天争论这是多么愚蠢,但我宁愿为我的任务寻求建议,将所有这些文件转移到s3桶中.

我不能使用任何物理传输解决方案,因为数据中心被物理锁定并且获得本地物理清除是一个为期6个月的过程.

执行此文件迁移的最佳方法是什么?

我到目前为止最好的想法是在AWS中构建EC2 linux服务器,使用s3fs-fuse安装s3目标存储桶(https://github.com/s3fs-fuse/s3fs-fuse/wiki/Fuse-Over-Amazon)作为EC2服务器上的文件系统,然后在持有GPFS挂载的数据中心服务器和EC2服务器之间运行一些netcat + tar命令.我在另一篇文章中找到了这个建议:目标框:nc -l -p 2342 | tar -C/target/dir -xzf - 源框:tar -cz/source/dir | nc Target_Box 2342

在我踏上这可能需要一个月的任务,我想看看是否有人在这里有一个更好的方式来做到这一点?

copy file amazon-s3 s3fs

2
推荐指数
1
解决办法
406
查看次数

标签 统计

amazon-s3 ×1

copy ×1

elliptic-curve ×1

file ×1

java ×1

public-key ×1

s3fs ×1