Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
JDChain
Utils
提交
f88df207
U
Utils
项目概览
JDChain
/
Utils
通知
0
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
U
Utils
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
f88df207
编写于
1月 18, 2021
作者:
H
huanghaiquan
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
added test cases of random;
上级
97070900
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
126 addition
and
0 deletion
+126
-0
utils-crypto-classic/src/test/java/test/utils/crypto/classic/SHA256SecureRandomTest.java
...ava/test/utils/crypto/classic/SHA256SecureRandomTest.java
+63
-0
utils-crypto-sm/src/test/java/test/utils/crypto/sm/SM3SecureRandomTest.java
...c/test/java/test/utils/crypto/sm/SM3SecureRandomTest.java
+63
-0
未找到文件。
utils-crypto-classic/src/test/java/test/utils/crypto/classic/SHA256SecureRandomTest.java
0 → 100644
浏览文件 @
f88df207
package
test.utils.crypto.classic
;
import
static
org
.
junit
.
Assert
.
assertArrayEquals
;
import
java.io.ByteArrayOutputStream
;
import
java.io.IOException
;
import
java.security.SecureRandom
;
import
org.junit.Test
;
import
utils.crypto.classic.SHA256SecureRandom
;
import
utils.io.BytesUtils
;
public
class
SHA256SecureRandomTest
{
/**
* 验证随机数按照相同的种子输入,输出总长度,总能得到相同的字节序列;
* @throws IOException
*/
@Test
public
void
testRandomConsistantWithFixedSeed
()
throws
IOException
{
byte
[]
seed
=
BytesUtils
.
toBytes
(
System
.
currentTimeMillis
());
int
totalSize
=
200
;
byte
[]
standardOutput
=
new
byte
[
totalSize
];
SHA256SecureRandom
random1
=
new
SHA256SecureRandom
(
seed
);
random1
.
nextBytes
(
standardOutput
);
ByteArrayOutputStream
out
=
new
ByteArrayOutputStream
();
byte
[]
stepBytes
=
new
byte
[
100
];
SHA256SecureRandom
random2
=
new
SHA256SecureRandom
(
seed
);
random2
.
nextBytes
(
stepBytes
);
out
.
write
(
stepBytes
);
random2
.
nextBytes
(
stepBytes
);
out
.
write
(
stepBytes
);
byte
[]
outputBytes
=
out
.
toByteArray
();
assertArrayEquals
(
standardOutput
,
outputBytes
);
for
(
int
i
=
0
;
i
<
totalSize
;
i
++)
{
// 按照不同的步长输出随机数,检查在相同的总长度下,得到的最终序列是否一致;
byte
[]
output
=
generateRandom
(
new
SHA256SecureRandom
(
seed
),
totalSize
,
i
+
1
);
assertArrayEquals
(
""
,
standardOutput
,
output
);
}
}
private
static
byte
[]
generateRandom
(
SecureRandom
random
,
int
totalSize
,
int
stepSize
)
throws
IOException
{
ByteArrayOutputStream
out
=
new
ByteArrayOutputStream
();
byte
[]
buff
=
new
byte
[
stepSize
];
int
left
=
totalSize
;
while
(
left
>
0
)
{
if
(
left
<
buff
.
length
)
{
buff
=
new
byte
[
left
];
}
random
.
nextBytes
(
buff
);
out
.
write
(
buff
);
left
-=
buff
.
length
;
}
return
out
.
toByteArray
();
}
}
utils-crypto-sm/src/test/java/test/utils/crypto/sm/SM3SecureRandomTest.java
0 → 100644
浏览文件 @
f88df207
package
test.utils.crypto.sm
;
import
static
org
.
junit
.
Assert
.
assertArrayEquals
;
import
java.io.ByteArrayOutputStream
;
import
java.io.IOException
;
import
java.security.SecureRandom
;
import
org.junit.Test
;
import
utils.crypto.sm.SM3SecureRandom
;
import
utils.io.BytesUtils
;
public
class
SM3SecureRandomTest
{
/**
* 验证随机数按照相同的种子输入,输出总长度,总能得到相同的字节序列;
* @throws IOException
*/
@Test
public
void
testRandomConsistantWithFixedSeed
()
throws
IOException
{
byte
[]
seed
=
BytesUtils
.
toBytes
(
System
.
currentTimeMillis
());
int
totalSize
=
200
;
byte
[]
standardOutput
=
new
byte
[
totalSize
];
SM3SecureRandom
random1
=
new
SM3SecureRandom
(
seed
);
random1
.
nextBytes
(
standardOutput
);
ByteArrayOutputStream
out
=
new
ByteArrayOutputStream
();
byte
[]
stepBytes
=
new
byte
[
100
];
SM3SecureRandom
random2
=
new
SM3SecureRandom
(
seed
);
random2
.
nextBytes
(
stepBytes
);
out
.
write
(
stepBytes
);
random2
.
nextBytes
(
stepBytes
);
out
.
write
(
stepBytes
);
byte
[]
outputBytes
=
out
.
toByteArray
();
assertArrayEquals
(
standardOutput
,
outputBytes
);
for
(
int
i
=
0
;
i
<
totalSize
;
i
++)
{
// 按照不同的步长输出随机数,检查在相同的总长度下,得到的最终序列是否一致;
byte
[]
output
=
generateRandom
(
new
SM3SecureRandom
(
seed
),
totalSize
,
i
+
1
);
assertArrayEquals
(
""
,
standardOutput
,
output
);
}
}
private
static
byte
[]
generateRandom
(
SecureRandom
random
,
int
totalSize
,
int
stepSize
)
throws
IOException
{
ByteArrayOutputStream
out
=
new
ByteArrayOutputStream
();
byte
[]
buff
=
new
byte
[
stepSize
];
int
left
=
totalSize
;
while
(
left
>
0
)
{
if
(
left
<
buff
.
length
)
{
buff
=
new
byte
[
left
];
}
random
.
nextBytes
(
buff
);
out
.
write
(
buff
);
left
-=
buff
.
length
;
}
return
out
.
toByteArray
();
}
}
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录