小编Ale*_*lay的帖子

我如何迭代班级成员?

我正在使用Java版本的Google App Engine.

我想创建一个函数,可以接收许多类型的对象作为参数.我想打印出对象的成员变量.每个对象可能不同,并且该功能必须适用于所有对象.我必须使用反射吗?如果是这样,我需要编写什么样的代码?

public class dataOrganization {
  private String name;
  private String contact;
  private PostalAddress address;

  public dataOrganization(){}
}

public int getObject(Object obj){
  // This function prints out the name of every 
  // member of the object, the type and the value
  // In this example, it would print out "name - String - null", 
  // "contact - String - null" and "address - PostalAddress - null"
}
Run Code Online (Sandbox Code Playgroud)

我该如何编写函数getObject?

java reflection

32
推荐指数
1
解决办法
4万
查看次数

(比特币)从getwork函数计算哈希 - 怎么做?

当我在bitcoind服务器上调用getwork时,我得到以下内容:

./bitcoind getwork
{
    "midstate" : "695d56ae173bbd0fd5f51d8f7753438b940b7cdd61eb62039036acd1af5e51e3",
    "data" : "000000013d9dcbbc2d120137c5b1cb1da96bd45b249fd1014ae2c2b400001511000000009726fba001940ebb5c04adc4450bdc0c20b50db44951d9ca22fc5e75d51d501f4deec2711a1d932f00000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000080020000",
    "hash1" : "00000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000010000",
    "target" : "00000000000000000000000000000000000000000000002f931d000000000000"
}
Run Code Online (Sandbox Code Playgroud)

该协议似乎没有记录.如何根据此数据计算哈希值.我认为这些数据是小端的.那么第一步是将所有内容转换为大端?完成后,我计算数据的sha256.数据可以分为两个每个64字节的块.第一个卡盘的散列由中间状态给出,因此不必计算.

因此,我必须使用中间状态作为初始哈希值来使用sha256对chunck#2进行散列.一旦完成,我最终得到一个块2的哈希值,它是32字节.我再次计算此块的哈希值以获得最终哈希值.

然后,我将所有内容转换为小端并提交作品吗?

hash1用于什么?

sha256 bitcoin

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

将uuid转换为byte,在使用UUID.nameUUIDFromBytes(b)时有效

我正在使用此代码将UUID转换为byte

public byte[] getIdAsByte(UUID uuid)
{
    ByteBuffer bb = ByteBuffer.wrap(new byte[16]);
    bb.putLong(uuid.getMostSignificantBits());
    bb.putLong(uuid.getLeastSignificantBits());
    return bb.array();
}
Run Code Online (Sandbox Code Playgroud)

但是,如果我尝试使用此功能重新创建UUID,

public UUID frombyte(byte[] b)
{
    return UUID.nameUUIDFromBytes(b);
}
Run Code Online (Sandbox Code Playgroud)

它与UUID不同.前后转换randomUUID会返回两个不同的.

UUID u = UUID.randomUUID();
System.out.println(u.toString());
System.out.println(frombyte(getIdAsByte(u)).toString());
Run Code Online (Sandbox Code Playgroud)

打印:

1ae004cf-0f48-469f-8a94-01339afaec41
8b5d1a71-a4a0-3b46-bec3-13ab9ab12e8e
Run Code Online (Sandbox Code Playgroud)

java uuid

22
推荐指数
2
解决办法
2万
查看次数

使用wiremock,我可以返回一个依赖于post请求的主体

我正在尝试测试openid提供程序类.openid消费者类正在发出http请求.我正在使用wiremock模拟对此请求的响应.我试图模拟一个有效的openid响应.但是,有效响应取决于请求参数.使用wiremock,我可以设置一个模拟请求,其中响应的主体依赖于请求参数吗?

java junit

16
推荐指数
3
解决办法
2万
查看次数

excel中的MD5哈希函数?

我想将文档中的一些excel单元格从序列号转换为该序列号的MD5哈希值.excel中是否有预编译的公式可以做到这一点,或者是我做VBA的唯一选择.如果是VBA,我该怎么做?

excel md5

13
推荐指数
1
解决办法
6万
查看次数

Cassandra用于存储付款信息

我正在尝试构建一个高度可用的超大量购物车应用程序.该应用程序将有一个如此之高的卷,我正在考虑使用cassandra而不是mysql的数据库.

现在,在购物车系统中,大多数数据库操作必须100%一致,而其他操作系统则不一定.

100%一致操作示例:保存付款确认.保存购买的物品清单.

不需要100%一致操作的事项示例:保存客户的地址(如果在付款时,数据库中没有保存地址,则认为它已丢失并再次询问客户).其他类似的事情.

现在,如果我在同一区域(Amazon EC2)中运行服务器群集,是否存在执行所有事务的主要障碍,即最大一致性事务.这会提供与mySQl Relational数据库相同的可靠性.请记住,我们在这里处理金融交易.

我的数据在cassandra中通常是"安全的".我的意思是完全意外的电源故障,随机光盘故障等等.

cassandra

6
推荐指数
2
解决办法
3760
查看次数

java中的对等存储库

我正在开发一个可以点对点工作的java应用程序.在任何时候,全球将有超过5000个客户在线.每个客户端都会随着时间的推移创建小文件.我希望这些文件在所有客户端之间分发并存储,以便任何人都可以连接并下载filesdump.

有没有可以帮助的图书馆?

java p2p

6
推荐指数
1
解决办法
1573
查看次数

用于验证的唯一CD-KEY生成算法

我正在尝试创建一个独特的CD-KEY放入我们的产品包装盒,就像用户用来注册产品的标准软件盒中的普通CD-KEY一样.

但是,我们不销售软件,我们正在销售用于刑事和医疗目的的DNA收集套件.用户将通过邮件收到唾液收集工具包,上面有CD-KEY,他们将使用该CD-KEY在我们的网站上创建一个帐户并获得他们的结果.测试结果将与CD-KEY相关联.这是我们必须将结果与患者联系起来的唯一方式.因此重要的是它不会失败:)

其中一个要求是CD-KEY列表必须充分"分散",以便不会有人输入错误的CD-KEY并且仍然允许其他人使用套件,从而混合使用两个套件.这可能会使我们承担数千美元的责任.

例如,它不能是数字的增量序列,例如
00001
00002
00003
......
原因是如果有人收到套件00002,但是偶然将其注册为000003,那么他的结果将与其他人匹配.所以它必须像信用卡号码...除非输入有效的序列,否则随机命中有效数字的几率是百万分之一......

此外,我们每年向各个提供商销售超过50,000个工具包(他们将使用我们的算法生成他们自己的CD-KEYS),因此我们无法维护所有先前发布的CD-KEYS列表以检查重复.该算法必须生成唯一的CD-KEY.

我们还要求能够使用快速检查算法验证CD-KEY是否有效,以便我们可以通知用户他输入的代码是否无效.这遗漏了许多哈希或MD5算法我相信.并且它不能是128位因为,谁会花时间在电脑屏幕上输入它?

到目前为止,这是我认为最终的CD-KEY结构看起来像

(4个char产品代码) - (4个char经销商代码) - (12个char唯一,可验证的CD-KEY)

Ex.384A - GTLD - {4565 - FR54 - EDF3}


为了确保KEYS的唯一性,我可以将当​​前日期(20090521)作为来源的一部分.我们不会每周多次生成唯一键,因此该值经常变化以达到唯一初始值.

我可以使用哪种算法来生成唯一键?

algorithm unique primary-key

5
推荐指数
1
解决办法
1万
查看次数

小端数据和sha 256

我必须以小端形式生成sha256数据哈希.在使用sha 256算法之前,我想知道是否必须先将其转换为big endian.或者,如果算法是"与endian无关"的.

编辑:对不起,我想我不清楚.我想知道的是:sha256算法需要用某些位填充消息的结尾.第一步是在消息的末尾添加1.然后,用零填充它直到结束.最后,您必须以位为单位添加消息的长度.我想知道的是这个填充是否可以用小端进行.例如,对于640位消息,我可以将最后一个字写为0x280(大端)或0x8002000(小端).这个填充可以用小端进行吗?

endianness sha256

5
推荐指数
2
解决办法
5263
查看次数

您需要的想象力:如何加密文件,以便解密时需要花费大量的比特币

比特币是一种匿名加密数字货币.几个月前我得到了一个想法来加密一个文件,在这个文件中需要用比特币的消费证明来解密文件.当比特币被发送到给定地址时,它将显示在分布在对等网络中的块文件中.通过要求大量计算机执行复杂计算来确保块链的完整性.该计算的证明用作签名.

你认为有一种方法可以加密文件,解密它的唯一方法是提供:

  1. 一个有效的比特币块代码
  2. 该块代码具有非零量的比特币,用于比特币地址.
  3. 该比特币地址对于我们希望解密的文件是唯一的.

结果是任何试图暴力破坏文件的人都会很快破产.而真正的用户只需要花一分钱来解密它.

encryption cryptography bitcoin

5
推荐指数
0
解决办法
225
查看次数