91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 380KB
    文件類型: .zip
    金幣: 2
    下載: 0 次
    發布日期: 2021-05-31
  • 語言: Java
  • 標簽: SM2??國密算法??js??java??

資源簡介

js的實現是在http://www.jonllen.com/upload/jonllen/case/jsrsasign-master/sample-sm2_crypt.html基礎上做了調整,完善了原概率性失敗的問題。java代碼同樣也實現了密鑰對生成、加密、解密。可以和js實現互相加密、解密

資源截圖

代碼片段和文件信息

package?com.luxy.core.utils;

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[]?=?SecurityUtils.byteConvert32Bytes(p2.getX().toBigInteger());
this.sm3keybase.update(p?0?p.length);
this.sm3c3.update(p?0?p.length);

p?=?SecurityUtils.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? {
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? {
if?(keyOff?==?key.length)
{
NextKey();
}
data[i]?^=?key[keyOff++];
}

this.sm3c3.update(data?0?data.length);
}

public?void?Dofinal(byte?c3[])
{
byte?p[]?=?SecurityUtils.byteConvert32Bytes(p2.getY().toBigInteger());
this.sm3c3.update(p?0?p.length);
this.sm3c3.doFinal(c3?0);
Reset();
}
}

?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2018-12-11?15:13??SM2_js+java\
?????目錄???????????0??2018-12-11?15:13??SM2_js+java\java\
?????文件????????2472??2018-12-11?11:32??SM2_js+java\java\Cipher.java
?????文件????????2702??2018-12-11?11:31??SM2_js+java\java\SM2.java
?????文件????????4496??2018-12-11?15:05??SM2_js+java\java\SM2Utils.java
?????文件????????6538??2018-12-11?11:31??SM2_js+java\java\SM3.java
?????文件????????3067??2018-12-11?11:31??SM2_js+java\java\SM3Digest.java
?????文件???????20476??2018-12-11?11:33??SM2_js+java\java\SecurityUtils.java
?????目錄???????????0??2018-12-11?15:13??SM2_js+java\js\
?????目錄???????????0??2018-12-11?15:10??SM2_js+java\js\build\
?????文件?????1020147??2018-12-11?14:23??SM2_js+java\js\build\index.js
?????文件?????1020742??2017-12-21?15:55??SM2_js+java\js\build\test.js
?????文件????????9591??2018-12-11?14:05??SM2_js+java\js\index.html

評論

共有 條評論