资源简介
本压缩包包括:
SM3.java
SM3密码杂凑算法.pdf
国密办发布SM3算法的网址.txt
也就是java实现,和国密办发布的SM3算法pdf。
代码片段和文件信息
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.math.BigInteger;
import java.util.Arrays;
public class SM3 {
private static Log logger = LogFactory.getLog(SM3.class);
private static char[] chars = {‘0‘ ‘1‘ ‘2‘ ‘3‘ ‘4‘ ‘5‘ ‘6‘ ‘7‘ ‘8‘
‘9‘ ‘A‘ ‘B‘ ‘C‘ ‘D‘ ‘E‘ ‘F‘};
private static final String ivHexStr = “7380166f 4914b2b9 172442d7 da8a0600 a96f30bc 163138aa e38dee4d b0fb0e4e“;
private static final BigInteger IV = new BigInteger(ivHexStr.replaceAll(“ “
““) 16);
private static final Integer Tj15 = Integer.valueOf(“79cc4519“ 16);
private static final Integer Tj63 = Integer.valueOf(“7a879d8a“ 16);
private static final byte[] FirstPadding = {(byte) 0x80};
private static final byte[] ZeroPadding = {(byte) 0x00};
private static int T(int j) {
if (j >= 0 && j <= 15) {
return Tj15.intValue();
} else if (j >= 16 && j <= 63) {
return Tj63.intValue();
} else {
throw new RuntimeException(“data invalid“);
}
}
private static Integer FF(Integer x Integer y Integer z int j) {
if (j >= 0 && j <= 15) {
return Integer.valueOf(x.intValue() ^ y.intValue() ^ z.intValue());
} else if (j >= 16 && j <= 63) {
return Integer.valueOf((x.intValue() & y.intValue())
| (x.intValue() & z.intValue())
| (y.intValue() & z.intValue()));
} else {
throw new RuntimeException(“data invalid“);
}
}
private static Integer GG(Integer x Integer y Integer z int j) {
if (j >= 0 && j <= 15) {
return Integer.valueOf(x.intValue() ^ y.intValue() ^ z.intValue());
} else if (j >= 16 && j <= 63) {
return Integer.valueOf((x.intValue() & y.intValue())
| (~x.intValue() & z.intValue()));
} else {
throw new RuntimeException(“data invalid“);
}
}
private static Integer P0(Integer x) {
return Integer.valueOf(x.intValue()
^ Integer.rotateLeft(x.intValue() 9)
^ Integer.rotateLeft(x.intValue() 17));
}
private static Integer P1(Integer x) {
return Integer.valueOf(x.intValue()
^ Integer.rotateLeft(x.intValue() 15)
^ Integer.rotateLeft(x.intValue() 23));
}
private static byte[] padding(byte[] source) throws IOException {
if (source.length >= 0x2000000000000000l) {
throw new RuntimeException(“src data invalid.“);
}
long l = source.length * 8;
long k = 448 - (l + 1) % 512;
if (k < 0) {
k = k + 512;
}
if (logger.isDebugEnabled()) {
logger.debug(“k = “ + k);
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2015-07-03 11:05 sm3\
文件 8217 2014-04-24 14:07 sm3\SM3.java
文件 70453 2015-07-03 11:06 sm3\sm3.png
文件 103677 2015-07-02 10:36 sm3\SM3密码杂凑算法.pdf
文件 49 2015-07-03 11:06 sm3\国家SM3算法网址.txt
- 上一篇:java 泡泡堂联机版
- 下一篇:java swing 闹钟源码
相关资源
- SMS4国密封装接口直接可用java.zip
- js+java实现国密算法SM2
- asm3.3相关jar包集合
- 国密算法SM3_SM4.zip
- 基于国密SM2加解密(JAVA版)
- 国密算法sm4的java实现
- SM 国密算法Java+JS
- sm4国密算法 java实现
- SM2&SM3&SM4国密规范及Java软算法实现
- java及js分别实现SM3加密
- java版的sm2、sm3、sm4加密解密,以及数
- java 国密算法实现包含SM2 SM3 SM4和数字
- 基于Java的SM2_SM3_SM4国密算法java源代码
- SM2_SM3_SM4国密算法java源码+PC工具
- sm2-sm4国密算法工具包及工具类
- SM2、SM3、SM4国密算法Java实现(含详细
- 国密SM3,JS版,粘贴即用,适用于前端
- 国密sm2,sm3,sm4计算小工具
- 国密加密解密
- SMS4国密算法的java实现及其jar包直接可
- SM2ANDSM3ANDSM4国密算法Java实现含详细测
- js版 sm3加密
- 国密SM4 - Java.zip
- 国产加密SM3算法java实现长度64位
- SM2SM3SM4 java实现
- 国密SM2完整 包附所有方法与调用(
评论
共有 条评论