資源簡介
公司要求用sm4進行加密解密,對國密算法sm4的java實現,附帶詳細實例和SM4分組密碼算法.pdf。希望能幫助到有同樣需求的你。

代碼片段和文件信息
package?com.security.cipher.sm;
import?java.io.ByteArrayInputStream;
import?java.io.ByteArrayOutputStream;
public?class?SM4?
{
public?static?final?int?SM4_ENCRYPT?=?1;
public?static?final?int?SM4_DECRYPT?=?0;
private?long?GET_ULONG_BE(byte[]?b?int?i)?
{
long?n?=?(long)(b[i]?&?0xff)?<24?|?(long)((b[i?+?1]?&?0xff)?<16)?|?(long)((b[i?+?2]?&?0xff)?<8)?|?(long)(b[i?+?3]?&?0xff)?&?0xffffffffL;
return?n;
}
private?void?PUT_ULONG_BE(long?n?byte[]?b?int?i)?
{
b[i]?=?(byte)(int)(0xFF?&?n?>>?24);
????????b[i?+?1]?=?(byte)(int)(0xFF?&?n?>>?16);
????????b[i?+?2]?=?(byte)(int)(0xFF?&?n?>>?8);
????????b[i?+?3]?=?(byte)(int)(0xFF?&?n);
}
private?long?SHL(long?x?int?n)?
{
return?(x?&?0xFFFFFFFF)?< }
private?long?ROTL(long?x?int?n)?
{
return?SHL(x?n)?|?x?>>?(32?-?n);
}
private?void?SWAP(long[]?sk?int?i)
{
long?t?=?sk[i];
sk[i]?=?sk[(31?-?i)];
sk[(31?-?i)]?=?t;
}
public?static?final?byte[]?SboxTable?=?{?(byte)?0xd6?(byte)?0x90?(byte)?0xe9?(byte)?0xfe
(byte)?0xcc?(byte)?0xe1?0x3d?(byte)?0xb7?0x16?(byte)?0xb6
0x14?(byte)?0xc2?0x28?(byte)?0xfb?0x2c?0x05?0x2b?0x67
(byte)?0x9a?0x76?0x2a?(byte)?0xbe?0x04?(byte)?0xc3
(byte)?0xaa?0x44?0x13?0x26?0x49?(byte)?0x86?0x06
(byte)?0x99?(byte)?0x9c?0x42?0x50?(byte)?0xf4?(byte)?0x91
(byte)?0xef?(byte)?0x98?0x7a?0x33?0x54?0x0b?0x43
(byte)?0xed?(byte)?0xcf?(byte)?0xac?0x62?(byte)?0xe4
(byte)?0xb3?0x1c?(byte)?0xa9?(byte)?0xc9?0x08?(byte)?0xe8
(byte)?0x95?(byte)?0x80?(byte)?0xdf?(byte)?0x94?(byte)?0xfa
0x75?(byte)?0x8f?0x3f?(byte)?0xa6?0x47?0x07?(byte)?0xa7
(byte)?0xfc?(byte)?0xf3?0x73?0x17?(byte)?0xba?(byte)?0x83
0x59?0x3c?0x19?(byte)?0xe6?(byte)?0x85?0x4f?(byte)?0xa8
0x68?0x6b?(byte)?0x81?(byte)?0xb2?0x71?0x64?(byte)?0xda
(byte)?0x8b?(byte)?0xf8?(byte)?0xeb?0x0f?0x4b?0x70?0x56
(byte)?0x9d?0x35?0x1e?0x24?0x0e?0x5e?0x63?0x58?(byte)?0xd1
(byte)?0xa2?0x25?0x22?0x7c?0x3b?0x01?0x21?0x78?(byte)?0x87
(byte)?0xd4?0x00?0x46?0x57?(byte)?0x9f?(byte)?0xd3?0x27
0x52?0x4c?0x36?0x02?(byte)?0xe7?(byte)?0xa0?(byte)?0xc4
(byte)?0xc8?(byte)?0x9e?(byte)?0xea?(byte)?0xbf?(byte)?0x8a
(byte)?0xd2?0x40?(byte)?0xc7?0x38?(byte)?0xb5?(byte)?0xa3
(byte)?0xf7?(byte)?0xf2?(byte)?0xce?(byte)?0xf9?0x61?0x15
(byte)?0xa1?(byte)?0xe0?(byte)?0xae?0x5d?(byte)?0xa4
(byte)?0x9b?0x34?0x1a?0x55?(byte)?0xad?(byte)?0x93?0x32
0x30?(byte)?0xf5?(byte)?0x8c?(byte)?0xb1?(byte)?0xe3?0x1d
(byte)?0xf6?(byte)?0xe2?0x2e?(byte)?0x82?0x66?(byte)?0xca
0x60?(byte)?0xc0?0x29?0x23?(byte)?0xab?0x0d?0x53?0x4e?0x6f
(byte)?0xd5?(byte)?0xdb?0x37?0x45?(byte)?0xde?(byte)?0xfd
(byte)?0x8e?0x2f?0x03?(byte)?0xff?0x6a?0x72?0x6d?0x6c?0x5b
0x51?(byte)?0x8d?0x1b?(byte)?0xaf?(byte)?0x92?(byte)?0xbb
(byte)?0xdd?(byte)?0xbc
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件???????9784??2016-09-24?10:05??國密算法sm4的java實現\com\security\cipher\sm\SM4.java
?????文件???????4296??2016-09-24?10:05??國密算法sm4的java實現\com\security\cipher\sm\SM4Utils.java
?????文件????????245??2016-09-24?10:05??國密算法sm4的java實現\com\security\cipher\sm\SM4_Context.java
?????文件??????17401??2016-09-24?10:05??國密算法sm4的java實現\com\security\cipher\sm\Util.java
?????文件?????205357??2016-01-07?13:04??國密算法sm4的java實現\SM4分組密碼算法.pdf
?????目錄??????????0??2018-10-17?15:44??國密算法sm4的java實現\com\security\cipher\sm
?????目錄??????????0??2016-09-24?10:06??國密算法sm4的java實現\com\security\cipher
?????目錄??????????0??2016-09-24?10:06??國密算法sm4的java實現\com\security
?????目錄??????????0??2016-09-24?10:06??國密算法sm4的java實現\com
?????目錄??????????0??2018-10-17?15:40??國密算法sm4的java實現
-----------?---------??----------?-----??----
???????????????237083????????????????????10
評論
共有 條評論