mirror of
https://github.com/wumansgy/goEncrypt.git
synced 2025-09-26 19:51:27 +08:00
go-Encrypt
This commit is contained in:
191
.idea/workspace.xml
generated
191
.idea/workspace.xml
generated
@@ -2,7 +2,21 @@
|
||||
<project version="4">
|
||||
<component name="ChangeListManager">
|
||||
<list default="true" id="879b126a-5488-4e29-a4e1-3a8936e89a2d" name="默认的" comment="">
|
||||
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/AES_CBC.go" beforeDir="false" afterPath="$PROJECT_DIR$/AES_CBC.go" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/AES_CTR.go" beforeDir="false" afterPath="$PROJECT_DIR$/AES_CTR.go" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/DES_CBC.go" beforeDir="false" afterPath="$PROJECT_DIR$/DES_CBC.go" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/EccCrypt.go" beforeDir="false" afterPath="$PROJECT_DIR$/EccCrypt.go" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/EccSign.go" beforeDir="false" afterPath="$PROJECT_DIR$/EccSign.go" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/GetECCKey.go" beforeDir="false" afterPath="$PROJECT_DIR$/GetECCKey.go" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/GetRsakey.go" beforeDir="false" afterPath="$PROJECT_DIR$/GetRsakey.go" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/PKCS5padding.go" beforeDir="false" afterPath="$PROJECT_DIR$/PKCS5padding.go" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/RsaCrypt.go" beforeDir="false" afterPath="$PROJECT_DIR$/RsaCrypt.go" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/RsaSign.go" beforeDir="false" afterPath="$PROJECT_DIR$/RsaSign.go" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/TripleDES_CBC.go" beforeDir="false" afterPath="$PROJECT_DIR$/TripleDES_CBC.go" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/ecies.go" beforeDir="false" afterPath="$PROJECT_DIR$/ecies.go" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/sha256.go" beforeDir="false" afterPath="$PROJECT_DIR$/sha256.go" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/sha512.go" beforeDir="false" afterPath="$PROJECT_DIR$/sha512.go" afterDir="false" />
|
||||
</list>
|
||||
<option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" />
|
||||
<option name="TRACKING_ENABLED" value="true" />
|
||||
@@ -12,29 +26,7 @@
|
||||
<option name="LAST_RESOLUTION" value="IGNORE" />
|
||||
</component>
|
||||
<component name="FileEditorManager">
|
||||
<leaf SIDE_TABS_SIZE_LIMIT_KEY="375">
|
||||
<file leaf-file-name="ecies.go" pinned="false" current-in-tab="true">
|
||||
<entry file="file://$PROJECT_DIR$/ecies.go">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="7506">
|
||||
<caret line="391" column="5" selection-start-line="391" selection-start-column="5" selection-end-line="391" selection-end-column="5" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
</file>
|
||||
<file leaf-file-name="EccCrypt.go" pinned="false" current-in-tab="false">
|
||||
<entry file="file://$PROJECT_DIR$/EccCrypt.go">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="-891">
|
||||
<caret line="39" column="35" selection-start-line="39" selection-start-column="35" selection-end-line="39" selection-end-column="35" />
|
||||
<folding>
|
||||
<element signature="e#15#153#0" expanded="true" />
|
||||
</folding>
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
</file>
|
||||
</leaf>
|
||||
<leaf SIDE_TABS_SIZE_LIMIT_KEY="375" />
|
||||
</component>
|
||||
<component name="GOROOT" path="D:\downlode" />
|
||||
<component name="Git.Settings">
|
||||
@@ -43,14 +35,20 @@
|
||||
<component name="IdeDocumentHistory">
|
||||
<option name="CHANGED_PATHS">
|
||||
<list>
|
||||
<option value="$PROJECT_DIR$/RsaSign.go" />
|
||||
<option value="$PROJECT_DIR$/RsaCrypt.go" />
|
||||
<option value="$PROJECT_DIR$/AES_CBC.go" />
|
||||
<option value="$PROJECT_DIR$/EccCrypt.go" />
|
||||
<option value="$PROJECT_DIR$/AES_CTR.go" />
|
||||
<option value="$PROJECT_DIR$/DES_CBC.go" />
|
||||
<option value="$PROJECT_DIR$/GetECCKey.go" />
|
||||
<option value="$PROJECT_DIR$/EccSign.go" />
|
||||
<option value="$PROJECT_DIR$/ecies.go" />
|
||||
<option value="$PROJECT_DIR$/EccCrypt.go" />
|
||||
<option value="$PROJECT_DIR$/GetECCKey.go" />
|
||||
<option value="$PROJECT_DIR$/GetRsakey.go" />
|
||||
<option value="$PROJECT_DIR$/PKCS5padding.go" />
|
||||
<option value="$PROJECT_DIR$/RsaCrypt.go" />
|
||||
<option value="$PROJECT_DIR$/RsaSign.go" />
|
||||
<option value="$PROJECT_DIR$/sha256.go" />
|
||||
<option value="$PROJECT_DIR$/sha512.go" />
|
||||
<option value="$PROJECT_DIR$/TripleDES_CBC.go" />
|
||||
</list>
|
||||
</option>
|
||||
</component>
|
||||
@@ -81,8 +79,8 @@
|
||||
<subPane>
|
||||
<expand>
|
||||
<path>
|
||||
<item name="wmgocrypt" type="b2602c69:ProjectViewProjectNode" />
|
||||
<item name="wmgocrypt" type="462c0819:PsiDirectoryNode" />
|
||||
<item name="goEncrypt" type="b2602c69:ProjectViewProjectNode" />
|
||||
<item name="goEncrypt" type="462c0819:PsiDirectoryNode" />
|
||||
</path>
|
||||
</expand>
|
||||
<select />
|
||||
@@ -112,9 +110,8 @@
|
||||
</component>
|
||||
<component name="ToolWindowManager">
|
||||
<frame x="-8" y="-8" width="1456" height="886" extended-state="6" />
|
||||
<editor active="true" />
|
||||
<layout>
|
||||
<window_info active="true" content_ui="combo" id="Project" order="0" visible="true" weight="0.22182082" />
|
||||
<window_info active="true" content_ui="combo" id="Project" order="0" visible="true" weight="0.22615607" />
|
||||
<window_info anchor="bottom" id="TODO" order="6" />
|
||||
<window_info anchor="bottom" id="调试" order="7" />
|
||||
<window_info anchor="bottom" id="Event Log" order="7" side_tool="true" />
|
||||
@@ -143,6 +140,20 @@
|
||||
<option name="myLimit" value="2678400000" />
|
||||
</component>
|
||||
<component name="editorHistoryManager">
|
||||
<entry file="file://$PROJECT_DIR$/ecies.go">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="10179">
|
||||
<caret line="391" column="5" selection-start-line="391" selection-start-column="5" selection-end-line="391" selection-end-column="5" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/EccCrypt.go">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="864">
|
||||
<caret line="39" column="35" selection-start-line="39" selection-start-column="35" selection-end-line="39" selection-end-column="35" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/EccSign.go">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="1971">
|
||||
@@ -153,35 +164,76 @@
|
||||
<entry file="file://$PROJECT_DIR$/GetRsakey.go">
|
||||
<provider selected="true" editor-type-id="text-editor" />
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/sha256.go">
|
||||
<provider selected="true" editor-type-id="text-editor" />
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/TripleDES_CBC.go">
|
||||
<provider selected="true" editor-type-id="text-editor" />
|
||||
<entry file="file://$PROJECT_DIR$/AES_CBC.go">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="-1757">
|
||||
<caret line="2" selection-start-line="2" selection-end-line="2" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/AES_CTR.go">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="-1406">
|
||||
<folding>
|
||||
<element signature="e#19#69#0" expanded="true" />
|
||||
</folding>
|
||||
<state relative-caret-position="-1352">
|
||||
<caret line="2" column="8" lean-forward="true" selection-start-line="2" selection-start-column="8" selection-end-line="2" selection-end-column="8" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/DES_CBC.go">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="-1451">
|
||||
<caret line="27" lean-forward="true" selection-start-line="27" selection-end-line="27" />
|
||||
<state relative-caret-position="-1809">
|
||||
<caret line="2" column="8" lean-forward="true" selection-start-line="2" selection-start-column="8" selection-end-line="2" selection-end-column="8" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/EccCrypt.go">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="-1757">
|
||||
<caret line="1" lean-forward="true" selection-start-line="1" selection-end-line="1" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/EccSign.go">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="-1730">
|
||||
<caret line="11" column="1" lean-forward="true" selection-start-line="11" selection-start-column="1" selection-end-line="11" selection-end-column="1" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/ecies.go">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="-1863">
|
||||
<caret line="27" column="21" selection-start-line="27" selection-start-column="21" selection-end-line="27" selection-end-column="21" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/GetECCKey.go">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="-540">
|
||||
<caret line="1" lean-forward="true" selection-start-line="1" selection-end-line="1" />
|
||||
<folding>
|
||||
<element signature="e#19#87#0" expanded="true" />
|
||||
<element signature="e#19#123#0" expanded="true" />
|
||||
</folding>
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/PKCS5padding.go">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="54">
|
||||
<caret line="4" column="1" lean-forward="true" selection-start-line="4" selection-start-column="1" selection-end-line="4" selection-end-column="1" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/GetRsakey.go">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="-1505">
|
||||
<caret column="17" selection-start-column="17" selection-end-column="17" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/RsaCrypt.go">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="-162">
|
||||
<caret line="9" column="1" lean-forward="true" selection-start-line="9" selection-start-column="1" selection-end-line="9" selection-end-column="1" />
|
||||
<state relative-caret-position="-2430">
|
||||
<caret column="17" selection-start-column="17" selection-end-column="17" />
|
||||
<folding>
|
||||
<element signature="e#19#107#0" expanded="true" />
|
||||
</folding>
|
||||
@@ -190,52 +242,29 @@
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/RsaSign.go">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="-972">
|
||||
<caret line="18" column="2" lean-forward="true" selection-start-line="18" selection-start-column="2" selection-end-line="18" selection-end-column="2" />
|
||||
<state relative-caret-position="-1478">
|
||||
<caret line="11" column="1" lean-forward="true" selection-start-line="11" selection-start-column="1" selection-end-line="11" selection-end-column="1" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/GetRsakey.go">
|
||||
<provider selected="true" editor-type-id="text-editor" />
|
||||
<entry file="file://$PROJECT_DIR$/sha256.go">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="-866">
|
||||
<caret column="17" selection-start-column="17" selection-end-column="17" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/GetECCKey.go">
|
||||
<entry file="file://$PROJECT_DIR$/sha512.go">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="-893">
|
||||
<caret line="9" column="9" lean-forward="true" selection-start-line="9" selection-start-column="9" selection-end-line="9" selection-end-column="9" />
|
||||
<caret column="17" selection-start-column="17" selection-end-column="17" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/EccSign.go">
|
||||
<entry file="file://$PROJECT_DIR$/TripleDES_CBC.go">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="1566">
|
||||
<caret line="67" column="18" selection-start-line="67" selection-start-column="18" selection-end-line="67" selection-end-column="18" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/AES_CBC.go">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="592">
|
||||
<caret line="83" column="9" lean-forward="true" selection-start-line="83" selection-start-column="9" selection-end-line="83" selection-end-column="9" />
|
||||
<folding>
|
||||
<element signature="e#19#87#0" expanded="true" />
|
||||
</folding>
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/EccCrypt.go">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="-891">
|
||||
<caret line="39" column="35" selection-start-line="39" selection-start-column="35" selection-end-line="39" selection-end-column="35" />
|
||||
<folding>
|
||||
<element signature="e#15#153#0" expanded="true" />
|
||||
</folding>
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/ecies.go">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="7506">
|
||||
<caret line="391" column="5" selection-start-line="391" selection-start-column="5" selection-end-line="391" selection-end-column="5" />
|
||||
<state relative-caret-position="-1676">
|
||||
<caret line="9" lean-forward="true" selection-start-line="9" selection-end-line="9" />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
|
@@ -1,4 +1,4 @@
|
||||
package wmgocrypt
|
||||
package goEncrypt
|
||||
|
||||
import (
|
||||
"crypto/aes"
|
||||
|
@@ -1,4 +1,4 @@
|
||||
package wmgocrypt
|
||||
package goEncrypt
|
||||
|
||||
import (
|
||||
"crypto/aes"
|
||||
|
@@ -1,4 +1,4 @@
|
||||
package wmgocrypt
|
||||
package goEncrypt
|
||||
|
||||
import (
|
||||
"crypto/des"
|
||||
|
@@ -1,4 +1,4 @@
|
||||
package wmgocrypt
|
||||
package goEncrypt
|
||||
|
||||
import (
|
||||
"log"
|
||||
|
@@ -1,4 +1,4 @@
|
||||
package wmgocrypt
|
||||
package goEncrypt
|
||||
|
||||
import (
|
||||
"crypto/sha256"
|
||||
|
@@ -1,4 +1,4 @@
|
||||
package wmgocrypt
|
||||
package goEncrypt
|
||||
|
||||
import (
|
||||
"crypto/ecdsa"
|
||||
|
@@ -1,4 +1,4 @@
|
||||
package wmgocrypt
|
||||
package goEncrypt
|
||||
|
||||
import (
|
||||
"crypto/rsa"
|
||||
|
@@ -1,4 +1,4 @@
|
||||
package wmgocrypt
|
||||
package goEncrypt
|
||||
|
||||
import (
|
||||
"bytes"
|
||||
|
53
README.md
53
README.md
@@ -1,4 +1,7 @@
|
||||
# wmgocrypt
|
||||
```
|
||||
goEncrypt
|
||||
```
|
||||
|
||||
go语言封装的各种对称加密和非对称加密,可以直接使用,包括3重DES,AES的CBC和CTR模式,还有RSA非对称加密
|
||||
|
||||
下载到本地可以直接调用
|
||||
@@ -6,7 +9,7 @@ go语言封装的各种对称加密和非对称加密,可以直接使用,包
|
||||
使用方法
|
||||
|
||||
```
|
||||
go get github.com/wumansgy/wmgocrypt
|
||||
go get github.com/wumansgy/goEncrypt
|
||||
```
|
||||
|
||||
然后下载到本地可以直接调用,包括了DES的CBC模式的加密解密(虽然DES早就被破解,但是可以参考使用),三重DES的加密解密(可以使用),AES的CBC模式和CTR模式(对称加密中常用的加密算法),非对称加密RSA的加密解密(比较常用的非对称加密算法),椭圆曲线加密算法(后面更新),还有哈希函数sha256,sha512的快速使用(MD5,SHA1已经在2004,2005年被陆续攻破,现在常用sha256和sha512)
|
||||
@@ -19,11 +22,11 @@ func main(){
|
||||
fmt.Println("明文为:",string(plaintext))
|
||||
|
||||
//传入明文和自己定义的密钥,密钥为8字节,如果不足8字节函数内部自动补全,超过8字节函数内部截取
|
||||
cryptText := wmgocrypt.DesCBC_Encrypt(plaintext, []byte("asd12345")) //得到密文
|
||||
cryptText := goEncrypt.DesCBC_Encrypt(plaintext, []byte("asd12345")) //得到密文
|
||||
fmt.Println("DES的CBC模式加密后的密文为:", base64.StdEncoding.EncodeToString(cryptText))
|
||||
|
||||
//传入密文和自己定义的密钥,需要和加密的密钥一样,不一样会报错,8字节,如果不足8字节函数内部自动补全,超过8字节函数内部截取
|
||||
newplaintext := wmgocrypt.DesCBC_Decrypt(cryptText, []byte("asd12345")) //解密得到密文
|
||||
newplaintext := goEncrypt.DesCBC_Decrypt(cryptText, []byte("asd12345")) //解密得到密文
|
||||
|
||||
fmt.Println("DES的CBC模式解密完:", string(newplaintext))
|
||||
}
|
||||
@@ -39,11 +42,11 @@ func main(){
|
||||
fmt.Println("明文为:",string(plaintext))
|
||||
|
||||
//传入明文和自己定义的密钥,密钥为24字节,如果不足24字节函数内部自动补全,不过超过24字节函数内部截取
|
||||
cryptText := wmgocrypt.TripleDesEncrypt(plaintext, []byte("wumansgy12345678asdfghjk"))
|
||||
cryptText := goEncrypt.TripleDesEncrypt(plaintext, []byte("wumansgy12345678asdfghjk"))
|
||||
fmt.Println("三重DES的CBC模式加密后的密文为:", base64.StdEncoding.EncodeToString(cryptText))
|
||||
|
||||
//传入密文和自己定义的密钥,需要和加密的密钥一样,不一样会报错,24字节,如果不足24字节函数内部自动补全,超过24字节函数内部截取
|
||||
newplaintext := wmgocrypt.TripleDesDecrypt(cryptText, []byte("wumansgy12345678asdfghjk"))
|
||||
newplaintext := goEncrypt.TripleDesDecrypt(cryptText, []byte("wumansgy12345678asdfghjk"))
|
||||
|
||||
fmt.Println("三重DES的CBC模式解密完:", string(newplaintext))
|
||||
}
|
||||
@@ -59,11 +62,11 @@ func main(){
|
||||
fmt.Println("明文为:",string(plaintext))
|
||||
|
||||
//传入明文和自己定义的密钥,密钥为16字节,如果不足16字节函数内部自动补全,超过16字节函数内部截取
|
||||
cryptText := wmgocrypt.AesCBC_Encrypt(plaintext, []byte("wumansgygoaescry"))
|
||||
cryptText := goEncrypt.AesCBC_Encrypt(plaintext, []byte("wumansgygoaescry"))
|
||||
fmt.Println("AES的CBC模式加密后的密文为:", base64.StdEncoding.EncodeToString(cryptText))
|
||||
|
||||
//传入密文和自己定义的密钥,需要和加密的密钥一样,不一样会报错,16字节,如果不足16字节函数内部自动补全,超过16字节函数内部截取
|
||||
newplaintext := wmgocrypt.AesCBC_Decrypt(cryptText, []byte("wumansgygoaescry"))
|
||||
newplaintext := goEncrypt.AesCBC_Decrypt(cryptText, []byte("wumansgygoaescry"))
|
||||
|
||||
fmt.Println("AES的CBC模式解密完:", string(newplaintext))
|
||||
}
|
||||
@@ -79,11 +82,11 @@ func main(){
|
||||
fmt.Println("明文为:",string(plaintext))
|
||||
|
||||
//传入明文和自己定义的密钥,密钥为16字节,如果不足16字节函数内部自动补全,超过16字节函数内部截取
|
||||
cryptText := wmgocrypt.AesCTR_Encrypt(plaintext, []byte("wumansgygoaesctr"))
|
||||
cryptText := goEncrypt.AesCTR_Encrypt(plaintext, []byte("wumansgygoaesctr"))
|
||||
fmt.Println("AES的CTR模式加密后的密文为:", base64.StdEncoding.EncodeToString(cryptText))
|
||||
|
||||
//传入密文和自己定义的密钥,需要和加密的密钥一样,不一样会报错,16字节,如果不足16字节函数内部自动补全,超过16字节函数内部截取
|
||||
newplaintext := wmgocrypt.AesCTR_Decrypt(cryptText, []byte("wumansgygoaesctr"))
|
||||
newplaintext := goEncrypt.AesCTR_Decrypt(cryptText, []byte("wumansgygoaesctr"))
|
||||
|
||||
fmt.Println("AES的CTR模式解密完:", string(newplaintext))
|
||||
}
|
||||
@@ -101,7 +104,7 @@ func main(){
|
||||
|
||||
```
|
||||
func main() {
|
||||
wmgocrypt.GetRsaKey()
|
||||
goEncrypt.GetRsaKey()
|
||||
}
|
||||
```
|
||||
|
||||
@@ -156,14 +159,14 @@ ad6gP18x4SD9oHZEkQsMHADpGK57k6tNkxnnB+AlAjXOuzwXh/8Q0vN9FsSW++hW
|
||||
-----END wuman public key-----`)
|
||||
|
||||
//直接传入明文和公钥加密得到密文
|
||||
crypttext, err := wmgocrypt.RsaEncrypt(plaintext, publickey)
|
||||
crypttext, err := goEncrypt.RsaEncrypt(plaintext, publickey)
|
||||
if err != nil {
|
||||
fmt.Println(err)
|
||||
return
|
||||
}
|
||||
fmt.Println("密文", hex.EncodeToString(crypttext))
|
||||
//解密操作,直接传入密文和私钥解密操作,得到明文
|
||||
plaintext, err = wmgocrypt.RsaDecrypt(crypttext, privatekey)
|
||||
plaintext, err = goEncrypt.RsaDecrypt(crypttext, privatekey)
|
||||
if err != nil {
|
||||
fmt.Println(err)
|
||||
return
|
||||
@@ -221,7 +224,7 @@ LuQ+kK5350RFfwe1YH6a/Mjun9g0z0Faljf96n4JvCIruHoGUUXOadIlaLRFfXvF
|
||||
JwIDAQAB
|
||||
-----END WUMAN PUBLIC KEY-----`)
|
||||
msg:=[]byte("RSA数字签名测试")
|
||||
signmsg,err:=wmgocrypt.RsaSign(msg,privateKey)
|
||||
signmsg,err:=goEncrypt.RsaSign(msg,privateKey)
|
||||
if err!=nil{
|
||||
fmt.Println(err)
|
||||
return
|
||||
@@ -229,7 +232,7 @@ JwIDAQAB
|
||||
fmt.Println("RSA数字签名的消息为:",hex.EncodeToString(signmsg))
|
||||
|
||||
//验证数字签名正不正确
|
||||
result:=wmgocrypt.RsaVerifySign(msg,signmsg,publicKey)
|
||||
result:=goEncrypt.RsaVerifySign(msg,signmsg,publicKey)
|
||||
if result{ //如果result返回的是true那么就是本人签名,否则不是,只有私钥加密,相对的公钥验证才可以认为是本人
|
||||
fmt.Println("RSA数字签名正确,是本人")
|
||||
}else{
|
||||
@@ -251,7 +254,7 @@ JwIDAQAB
|
||||
|
||||
```
|
||||
func main(){
|
||||
wmgocrypt.GetEccKey()
|
||||
goEncrypt.GetEccKey()
|
||||
}
|
||||
```
|
||||
|
||||
@@ -279,12 +282,12 @@ WjPtDIQJxQ3AnvFbQaoJ+0gvOtFsR8jRVVD2lLwAQsrTDk3+L/ZvmhGhzjcANsX/
|
||||
W/fnOWXyXQ7DB16jMSQ=
|
||||
-----END WUMAN ECC PUBLIC KEY-----`)
|
||||
msg:=[]byte("数字签名测试")
|
||||
rtext,stext:=wmgocrypt.EccSign(msg,privateKey)
|
||||
rtext,stext:=goEncrypt.EccSign(msg,privateKey)
|
||||
|
||||
fmt.Println("数字签名的消息为:",hex.EncodeToString(rtext)+hex.EncodeToString(stext))
|
||||
|
||||
//验证数字签名正不正确
|
||||
result:=wmgocrypt.EccVerifySign(msg,publicKey,rtext,stext)
|
||||
result:=goEncrypt.EccVerifySign(msg,publicKey,rtext,stext)
|
||||
if result{ //如果result返回的是true那么就是本人签名,否则不是,只有私钥加密,相对的公钥验证才可以认为是本人
|
||||
fmt.Println("数字签名正确,是本人")
|
||||
}else{
|
||||
@@ -303,7 +306,7 @@ W/fnOWXyXQ7DB16jMSQ=
|
||||
|
||||
```
|
||||
func main(){
|
||||
wmgocrypt.GetEccKey()
|
||||
goEncrypt.GetEccKey()
|
||||
} //这里我们得到的密钥是通过P256曲线得到的,由于之前验证用别的曲线调用以太坊接口会报错
|
||||
```
|
||||
|
||||
@@ -328,10 +331,10 @@ FooGpsKCbLvrdUW4peVIwKEW+yC3/g2X7Q2A8ftJlYv2X4kDU180GhIQpA==
|
||||
-----END WUMAN ECC PUBLIC KEY-----
|
||||
`)
|
||||
|
||||
cryptText,_:=wmgocrypt.EccPublicEncrypt(plainText,publicKey)
|
||||
cryptText,_:=goEncrypt.EccPublicEncrypt(plainText,publicKey)
|
||||
fmt.Println("ECC传入公钥加密的密文为:",hex.EncodeToString(cryptText))
|
||||
|
||||
msg,err:=wmgocrypt.EccPrivateDeCrypt(cryptText,privateKey)
|
||||
msg,err:=goEncrypt.EccPrivateDeCrypt(cryptText,privateKey)
|
||||
if err!=nil{
|
||||
fmt.Println(err)
|
||||
}
|
||||
@@ -350,7 +353,7 @@ FooGpsKCbLvrdUW4peVIwKEW+yC3/g2X7Q2A8ftJlYv2X4kDU180GhIQpA==
|
||||
```
|
||||
func main(){
|
||||
//获取文件哈希的时候,需要传入文件的路径就行了,如果传入文件夹会报错
|
||||
fileHash,err:=wmgocrypt.GetFileHash256("D:/gocode/播放器.zip")
|
||||
fileHash,err:=goEncrypt.GetFileHash256("D:/gocode/播放器.zip")
|
||||
if err!=nil{
|
||||
fmt.Println(err)
|
||||
return
|
||||
@@ -358,7 +361,7 @@ func main(){
|
||||
fmt.Println("文件的哈希为:",fileHash)
|
||||
|
||||
//得到普通字符串哈希直接传入字符串就行
|
||||
Hash:=wmgocrypt.GetStringHash256("得到普通哈希")
|
||||
Hash:=goEncrypt.GetStringHash256("得到普通哈希")
|
||||
fmt.Println("普通字符串哈希:",Hash)
|
||||
|
||||
}
|
||||
@@ -371,7 +374,7 @@ func main(){
|
||||
```
|
||||
func main(){
|
||||
//获取文件哈希的时候,需要传入文件的路径就行了,如果传入文件夹会报错
|
||||
fileHash,err:=wmgocrypt.GetFileHash512("D:/gocode/播放器.zip")
|
||||
fileHash,err:=goEncrypt.GetFileHash512("D:/gocode/播放器.zip")
|
||||
if err!=nil{
|
||||
fmt.Println(err)
|
||||
return
|
||||
@@ -379,7 +382,7 @@ func main(){
|
||||
fmt.Println("文件的哈希为:",fileHash)
|
||||
|
||||
//得到普通字符串哈希直接传入字符串就行
|
||||
Hash:=wmgocrypt.GetStringHash512("得到普通哈希")
|
||||
Hash:=goEncrypt.GetStringHash512("得到普通哈希")
|
||||
fmt.Println("普通字符串哈希:",Hash)
|
||||
}
|
||||
```
|
||||
|
@@ -1,4 +1,4 @@
|
||||
package wmgocrypt
|
||||
package goEncrypt
|
||||
|
||||
import (
|
||||
"encoding/pem"
|
||||
|
@@ -1,4 +1,4 @@
|
||||
package wmgocrypt
|
||||
package goEncrypt
|
||||
|
||||
import (
|
||||
"encoding/pem"
|
||||
|
@@ -1,4 +1,4 @@
|
||||
package wmgocrypt
|
||||
package goEncrypt
|
||||
|
||||
import (
|
||||
"crypto/des"
|
||||
|
2
ecies.go
2
ecies.go
@@ -27,7 +27,7 @@
|
||||
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
package wmgocrypt
|
||||
package goEncrypt
|
||||
|
||||
import (
|
||||
"crypto/cipher"
|
||||
|
Reference in New Issue
Block a user