Skip to content

Instantly share code, notes, and snippets.

View fangzhen51236's full-sized avatar

fangzhen51236

View GitHub Profile
@fangzhen51236
fangzhen51236 / shuffleBySeed
Created February 26, 2020 03:48
YouChain链上发牌demo 洗牌算法
public static Integer[] shuffleBySeed(String shuffleSeed) {
//将一副新牌映射为1-54的数组
Integer[] newCardsArray = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54};
List<Integer> newCardsList = Arrays.asList(array);
//引入自定义种子
SecureRandom random = SecureRandom.getInstance("SHA1PRNG");
random.setSeed(shuffleSeed.getBytes());
//洗牌
@fangzhen51236
fangzhen51236 / shuffleBySeed
Last active March 30, 2020 01:15
YouChain可验证发牌demo规则公示
洗牌随机数生成规则:
洗牌随机数由三个玩家的公钥、预言机随机数、牌局id顺序拼接而成,其中玩家的公钥按照玩家进入牌局的顺序进行拼接;
将拼接后的字符串转为16进制得到该牌局的洗牌随机数;
public static String getRandSeries(String pubKey1, String pubKey2, String pubKey3, String id){
SecureRandom random = new SecureRandom();
String randSeries = byte2HexStr((pubKey1+pubKey2+pubKey3+random.nextInt()+id).getBytes());
return randSeries;
}