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