资源简介
SM2&SM3;&SM4;国密算法Java实现(含详细测试代码),经典代码
代码片段和文件信息
package com.security.cipher.sm;
import java.math.BigInteger;
import org.bouncycastle.crypto.AsymmetricCipherKeyPair;
import org.bouncycastle.crypto.params.ECPrivateKeyParameters;
import org.bouncycastle.crypto.params.ECPublicKeyParameters;
import org.bouncycastle.math.ec.ECPoint;
public class Cipher
{
private int ct;
private ECPoint p2;
private SM3Digest sm3keybase;
private SM3Digest sm3c3;
private byte key[];
private byte keyOff;
public Cipher()
{
this.ct = 1;
this.key = new byte[32];
this.keyOff = 0;
}
private void Reset()
{
this.sm3keybase = new SM3Digest();
this.sm3c3 = new SM3Digest();
byte p[] = Util.byteConvert32Bytes(p2.getX().toBigInteger());
this.sm3keybase.update(p 0 p.length);
this.sm3c3.update(p 0 p.length);
p = Util.byteConvert32Bytes(p2.getY().toBigInteger());
this.sm3keybase.update(p 0 p.length);
this.ct = 1;
NextKey();
}
private void NextKey()
{
SM3Digest sm3keycur = new SM3Digest(this.sm3keybase);
sm3keycur.update((byte) (ct >> 24 & 0xff));
sm3keycur.update((byte) (ct >> 16 & 0xff));
sm3keycur.update((byte) (ct >> 8 & 0xff));
sm3keycur.update((byte) (ct & 0xff));
sm3keycur.doFinal(key 0);
this.keyOff = 0;
this.ct++;
}
public ECPoint Init_enc(SM2 sm2 ECPoint userKey)
{
AsymmetricCipherKeyPair key = sm2.ecc_key_pair_generator.generateKeyPair();
ECPrivateKeyParameters ecpriv = (ECPrivateKeyParameters) key.getPrivate();
ECPublicKeyParameters ecpub = (ECPublicKeyParameters) key.getPublic();
BigInteger k = ecpriv.getD();
ECPoint c1 = ecpub.getQ();
this.p2 = userKey.multiply(k);
Reset();
return c1;
}
public void Encrypt(byte data[])
{
this.sm3c3.update(data 0 data.length);
for (int i = 0; i < data.length; i++)
{
if (keyOff == key.length)
{
NextKey();
}
data[i] ^= key[keyOff++];
}
}
public void Init_dec(BigInteger userD ECPoint c1)
{
this.p2 = c1.multiply(userD);
Reset();
}
public void Decrypt(byte data[])
{
for (int i = 0; i < data.length; i++)
{
if (keyOff == key.length)
{
NextKey();
}
data[i] ^= key[keyOff++];
}
this.sm3c3.update(data 0 data.length);
}
public void Dofinal(byte c3[])
{
byte p[] = Util.byteConvert32Bytes(p2.getY().toBigInteger());
this.sm3c3.update(p 0 p.length);
this.sm3c3.doFinal(c3 0);
Reset();
}
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 2461 2016-09-24 10:05 SM2&SM3&SM4国密算法Java实现(含详细测试代码)\code\com\security\cipher\sm\Cipher.java
文件 6354 2016-09-24 10:05 SM2&SM3&SM4国密算法Java实现(含详细测试代码)\code\com\security\cipher\sm\SM2.java
文件 401 2016-09-24 10:05 SM2&SM3&SM4国密算法Java实现(含详细测试代码)\code\com\security\cipher\sm\SM2Result.java
文件 7902 2016-09-24 10:05 SM2&SM3&SM4国密算法Java实现(含详细测试代码)\code\com\security\cipher\sm\SM2Utils.java
文件 8035 2016-09-24 10:05 SM2&SM3&SM4国密算法Java实现(含详细测试代码)\code\com\security\cipher\sm\SM3.java
文件 3003 2016-09-24 10:05 SM2&SM3&SM4国密算法Java实现(含详细测试代码)\code\com\security\cipher\sm\SM3Digest.java
文件 9784 2016-09-24 10:05 SM2&SM3&SM4国密算法Java实现(含详细测试代码)\code\com\security\cipher\sm\SM4.java
文件 4296 2016-09-24 10:05 SM2&SM3&SM4国密算法Java实现(含详细测试代码)\code\com\security\cipher\sm\SM4Utils.java
文件 245 2016-09-24 10:05 SM2&SM3&SM4国密算法Java实现(含详细测试代码)\code\com\security\cipher\sm\SM4_Context.java
文件 0 2016-09-24 10:04 SM2&SM3&SM4国密算法Java实现(含详细测试代码)\code\com\security\cipher\sm\tip.txt
文件 17401 2016-09-24 10:05 SM2&SM3&SM4国密算法Java实现(含详细测试代码)\code\com\security\cipher\sm\Util.java
文件 16578 2016-09-24 10:08 SM2&SM3&SM4国密算法Java实现(含详细测试代码)\code.rar
文件 945731 2016-01-07 13:19 SM2&SM3&SM4国密算法Java实现(含详细测试代码)\SM2椭圆曲线公钥密码算法.pdf
文件 22552 2016-01-07 13:19 SM2&SM3&SM4国密算法Java实现(含详细测试代码)\SM2椭圆曲线公钥密码算法推荐曲线参数.pdf
文件 8035 2016-09-24 10:05 SM2&SM3&SM4国密算法Java实现(含详细测试代码)\SM3算法\SM3.java
文件 3003 2016-09-24 10:05 SM2&SM3&SM4国密算法Java实现(含详细测试代码)\SM3算法\SM3Digest.java
文件 103677 2016-01-12 12:01 SM2&SM3&SM4国密算法Java实现(含详细测试代码)\SM3算法\SM3密码杂凑算法.pdf
文件 17401 2016-09-24 10:05 SM2&SM3&SM4国密算法Java实现(含详细测试代码)\SM3算法\Util.java
文件 3534741 2018-01-17 17:16 SM2&SM3&SM4国密算法Java实现(含详细测试代码)\SM3算法.rar
文件 205357 2016-01-07 13:04 SM2&SM3&SM4国密算法Java实现(含详细测试代码)\SM4分组密码算法.pdf
目录 0 2016-09-24 10:06 SM2&SM3&SM4国密算法Java实现(含详细测试代码)\code\com\security\cipher\sm
目录 0 2016-09-24 10:06 SM2&SM3&SM4国密算法Java实现(含详细测试代码)\code\com\security\cipher
目录 0 2016-09-24 10:06 SM2&SM3&SM4国密算法Java实现(含详细测试代码)\code\com\security
目录 0 2016-09-24 10:06 SM2&SM3&SM4国密算法Java实现(含详细测试代码)\code\com
目录 0 2017-09-04 14:23 SM2&SM3&SM4国密算法Java实现(含详细测试代码)\code
目录 0 2018-01-12 16:57 SM2&SM3&SM4国密算法Java实现(含详细测试代码)\SM3算法
目录 0 2018-01-17 17:16 SM2&SM3&SM4国密算法Java实现(含详细测试代码)
----------- --------- ---------- ----- ----
4916957 27
............此处省略0个文件信息
- 上一篇:classes.dex.dex2jar
- 下一篇:android笔记全集
相关资源
- SM2&SM3&SM4国密算法Java实现含详细测试
- SM2&SM3&SM4国密算法Java实现含详细测试
- java实现国密算法SM2SM3SM4算法
- java调用Gmssl国密接口
- 国密SM3算法实现源代码只适合JAVA
- java国密算法实现
- DoubleCA版本的国密算法JCE(Java Crypto
- JAVA国密算法pnc,sm2,sm3,sm4,jar包直
- 国密算法SM4加解密算法JAVA
- js+java实现国密算法SM2
- 国密算法SM3_SM4.zip
- 国密算法sm4的java实现
- SM 国密算法Java+JS
- sm4国密算法 java实现
- java 国密算法实现包含SM2 SM3 SM4和数字
- 基于Java的SM2_SM3_SM4国密算法java源代码
- SM2_SM3_SM4国密算法java源码+PC工具
- sm2-sm4国密算法工具包及工具类
- SM2、SM3、SM4国密算法Java实现(含详细
- SMS4国密算法的java实现及其jar包直接可
- SM2ANDSM3ANDSM4国密算法Java实现含详细测
评论
共有 条评论