Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
F
Ftt_Common
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Administrator
Ftt_Common
Commits
be173998
Commit
be173998
authored
Feb 22, 2021
by
tr
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
1、登录密码-解密工具
parent
efa08ef5
Changes
6
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
357 additions
and
0 deletions
+357
-0
Utils.cs
Tools/MyUtils/Utils.cs
+71
-0
Tools.csproj
Tools/Tools.csproj
+9
-0
wLoginPwd.Designer.cs
Tools/UI/wLoginPwd.Designer.cs
+106
-0
wLoginPwd.cs
Tools/UI/wLoginPwd.cs
+50
-0
wLoginPwd.resx
Tools/UI/wLoginPwd.resx
+120
-0
wExtend.cs
Tools/wExtend.cs
+1
-0
No files found.
Tools/MyUtils/Utils.cs
View file @
be173998
...
...
@@ -4,6 +4,7 @@ using System.Data;
using
System.Diagnostics
;
using
System.IO
;
using
System.Linq
;
using
System.Security.Cryptography
;
using
System.Text
;
using
System.Threading.Tasks
;
//
...
...
@@ -83,6 +84,76 @@ namespace Tools.MyUtils
Process
.
Start
(
"notepad.exe"
,
fileName
);
}
#
endregion
#
region
加密解密
private
static
string
KEY_ENCRYPT
=
"c_dc"
;
/// <summary>
/// 解密字符串
/// </summary>
/// <param name="pDecryptStr"></param>
/// <returns></returns>
public
static
string
DecryptString
(
string
pDecryptStr
)
{
DESCryptoServiceProvider
desc
=
new
DESCryptoServiceProvider
();
//产生key
PasswordDeriveBytes
db
=
new
PasswordDeriveBytes
(
KEY_ENCRYPT
,
null
);
byte
[]
key
=
db
.
GetBytes
(
8
);
//存储解密后的数据
MemoryStream
ms
=
new
MemoryStream
();
CryptoStream
cs
=
new
CryptoStream
(
ms
,
desc
.
CreateDecryptor
(
key
,
key
),
CryptoStreamMode
.
Write
);
//取到加密后的数据的字节流,如果是保存到文件
try
{
byte
[]
databytes
=
Convert
.
FromBase64String
(
pDecryptStr
);
//解密数据
cs
.
Write
(
databytes
,
0
,
databytes
.
Length
);
cs
.
FlushFinalBlock
();
byte
[]
res
=
ms
.
ToArray
();
//返回解密后的数据,这里返回的数据应该和参数pwd的值相同。
return
System
.
Text
.
Encoding
.
UTF8
.
GetString
(
res
);
}
catch
{
Utils
.
Tip
(
$"字符串
{
pDecryptStr
}
解密不成功。"
);
return
null
;
}
}
/// <summary>
/// 加密字符串
/// </summary>
/// <param name="pEncryptedStr"></param>
/// <returns></returns>
public
static
string
EncryptString
(
string
pEncryptedStr
)
{
//des进行加密
DESCryptoServiceProvider
desc
=
new
DESCryptoServiceProvider
();
//产生key
PasswordDeriveBytes
db
=
new
PasswordDeriveBytes
(
KEY_ENCRYPT
,
null
);
byte
[]
key
=
db
.
GetBytes
(
8
);
//存储加密后的数据
MemoryStream
ms
=
new
MemoryStream
();
CryptoStream
cs
=
new
CryptoStream
(
ms
,
desc
.
CreateEncryptor
(
key
,
key
),
CryptoStreamMode
.
Write
);
//取到密码的字节流
try
{
byte
[]
data
=
Encoding
.
UTF8
.
GetBytes
(
pEncryptedStr
);
//进行加密
cs
.
Write
(
data
,
0
,
data
.
Length
);
cs
.
FlushFinalBlock
();
//取加密后的数据
byte
[]
res
=
ms
.
ToArray
();
return
Convert
.
ToBase64String
(
res
);
}
catch
{
Utils
.
Tip
(
$"字符串
{
pEncryptedStr
}
加密不成功。"
);
return
null
;
}
}
#
endregion
#
region
winform
:提示;帮助窗口;异步
UI
支持
...
...
Tools/Tools.csproj
View file @
be173998
...
...
@@ -160,6 +160,12 @@
</Compile>
<Compile
Include=
"Program.cs"
/>
<Compile
Include=
"Properties\AssemblyInfo.cs"
/>
<Compile
Include=
"UI\wLoginPwd.cs"
>
<SubType>
Form
</SubType>
</Compile>
<Compile
Include=
"UI\wLoginPwd.Designer.cs"
>
<DependentUpon>
wLoginPwd.cs
</DependentUpon>
</Compile>
<Compile
Include=
"UI\wModuleManager.cs"
>
<SubType>
Form
</SubType>
</Compile>
...
...
@@ -249,6 +255,9 @@
<EmbeddedResource
Include=
"UI\wDBTools.resx"
>
<DependentUpon>
wDBTools.cs
</DependentUpon>
</EmbeddedResource>
<EmbeddedResource
Include=
"UI\wLoginPwd.resx"
>
<DependentUpon>
wLoginPwd.cs
</DependentUpon>
</EmbeddedResource>
<EmbeddedResource
Include=
"UI\wModuleManager.resx"
>
<DependentUpon>
wModuleManager.cs
</DependentUpon>
</EmbeddedResource>
...
...
Tools/UI/wLoginPwd.Designer.cs
0 → 100644
View file @
be173998
namespace
Tools.UI
{
partial
class
wLoginPwd
{
/// <summary>
/// Required designer variable.
/// </summary>
private
System
.
ComponentModel
.
IContainer
components
=
null
;
/// <summary>
/// Clean up any resources being used.
/// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
protected
override
void
Dispose
(
bool
disposing
)
{
if
(
disposing
&&
(
components
!=
null
))
{
components
.
Dispose
();
}
base
.
Dispose
(
disposing
);
}
#
region
Windows
Form
Designer
generated
code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private
void
InitializeComponent
()
{
this
.
tbPassword
=
new
System
.
Windows
.
Forms
.
TextBox
();
this
.
label1
=
new
System
.
Windows
.
Forms
.
Label
();
this
.
btnDecrypt
=
new
System
.
Windows
.
Forms
.
Button
();
this
.
tbResult
=
new
System
.
Windows
.
Forms
.
TextBox
();
this
.
label2
=
new
System
.
Windows
.
Forms
.
Label
();
this
.
SuspendLayout
();
//
// tbPassword
//
this
.
tbPassword
.
Location
=
new
System
.
Drawing
.
Point
(
116
,
51
);
this
.
tbPassword
.
Name
=
"tbPassword"
;
this
.
tbPassword
.
Size
=
new
System
.
Drawing
.
Size
(
171
,
21
);
this
.
tbPassword
.
TabIndex
=
0
;
//
// label1
//
this
.
label1
.
AutoSize
=
true
;
this
.
label1
.
Location
=
new
System
.
Drawing
.
Point
(
81
,
54
);
this
.
label1
.
Name
=
"label1"
;
this
.
label1
.
Size
=
new
System
.
Drawing
.
Size
(
29
,
12
);
this
.
label1
.
TabIndex
=
1
;
this
.
label1
.
Text
=
"密文"
;
//
// btnDecrypt
//
this
.
btnDecrypt
.
Location
=
new
System
.
Drawing
.
Point
(
116
,
78
);
this
.
btnDecrypt
.
Name
=
"btnDecrypt"
;
this
.
btnDecrypt
.
Size
=
new
System
.
Drawing
.
Size
(
75
,
23
);
this
.
btnDecrypt
.
TabIndex
=
2
;
this
.
btnDecrypt
.
Text
=
"解密"
;
this
.
btnDecrypt
.
UseVisualStyleBackColor
=
true
;
this
.
btnDecrypt
.
Click
+=
new
System
.
EventHandler
(
this
.
btnDecrypt_Click
);
//
// tbResult
//
this
.
tbResult
.
Location
=
new
System
.
Drawing
.
Point
(
116
,
107
);
this
.
tbResult
.
Name
=
"tbResult"
;
this
.
tbResult
.
Size
=
new
System
.
Drawing
.
Size
(
171
,
21
);
this
.
tbResult
.
TabIndex
=
3
;
//
// label2
//
this
.
label2
.
AutoSize
=
true
;
this
.
label2
.
Location
=
new
System
.
Drawing
.
Point
(
81
,
110
);
this
.
label2
.
Name
=
"label2"
;
this
.
label2
.
Size
=
new
System
.
Drawing
.
Size
(
29
,
12
);
this
.
label2
.
TabIndex
=
4
;
this
.
label2
.
Text
=
"结果"
;
//
// wLoginPwd
//
this
.
AutoScaleDimensions
=
new
System
.
Drawing
.
SizeF
(
6F
,
12F
);
this
.
AutoScaleMode
=
System
.
Windows
.
Forms
.
AutoScaleMode
.
Font
;
this
.
ClientSize
=
new
System
.
Drawing
.
Size
(
377
,
213
);
this
.
Controls
.
Add
(
this
.
label2
);
this
.
Controls
.
Add
(
this
.
tbResult
);
this
.
Controls
.
Add
(
this
.
btnDecrypt
);
this
.
Controls
.
Add
(
this
.
label1
);
this
.
Controls
.
Add
(
this
.
tbPassword
);
this
.
FormBorderStyle
=
System
.
Windows
.
Forms
.
FormBorderStyle
.
FixedToolWindow
;
this
.
Name
=
"wLoginPwd"
;
this
.
Text
=
"wLoginPwd"
;
this
.
ResumeLayout
(
false
);
this
.
PerformLayout
();
}
#
endregion
private
System
.
Windows
.
Forms
.
TextBox
tbPassword
;
private
System
.
Windows
.
Forms
.
Label
label1
;
private
System
.
Windows
.
Forms
.
Button
btnDecrypt
;
private
System
.
Windows
.
Forms
.
TextBox
tbResult
;
private
System
.
Windows
.
Forms
.
Label
label2
;
}
}
\ No newline at end of file
Tools/UI/wLoginPwd.cs
0 → 100644
View file @
be173998
using
System
;
using
System.Collections.Generic
;
using
System.ComponentModel
;
using
System.Data
;
using
System.Drawing
;
using
System.Linq
;
using
System.Text
;
using
System.Threading.Tasks
;
using
System.Windows.Forms
;
//
using
Tools.MyCommon
;
using
Tools.MyUtils
;
namespace
Tools.UI
{
public
partial
class
wLoginPwd
:
wBasic
{
/// <summary>
/// 密文
/// </summary>
string
Password
=>
this
.
tbPassword
.
Text
.
Trim
();
/// <summary>
/// 结果
/// </summary>
string
Result
{
get
=>
this
.
tbResult
.
Text
.
Trim
();
set
=>
this
.
tbResult
.
Text
=
value
;
}
public
wLoginPwd
()
{
InitializeComponent
();
}
/// <summary>
/// 按钮事件:解密
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private
void
btnDecrypt_Click
(
object
sender
,
EventArgs
e
)
{
//解密
this
.
Result
=
Utils
.
DecryptString
(
this
.
Password
);
//获取焦点,并选中文本
this
.
tbResult
.
Focus
();
this
.
tbResult
.
SelectAll
();
}
}
}
Tools/UI/wLoginPwd.resx
0 → 100644
View file @
be173998
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema
id=
"root"
xmlns=
""
xmlns:xsd=
"http://www.w3.org/2001/XMLSchema"
xmlns:msdata=
"urn:schemas-microsoft-com:xml-msdata"
>
<xsd:import
namespace=
"http://www.w3.org/XML/1998/namespace"
/>
<xsd:element
name=
"root"
msdata:IsDataSet=
"true"
>
<xsd:complexType>
<xsd:choice
maxOccurs=
"unbounded"
>
<xsd:element
name=
"metadata"
>
<xsd:complexType>
<xsd:sequence>
<xsd:element
name=
"value"
type=
"xsd:string"
minOccurs=
"0"
/>
</xsd:sequence>
<xsd:attribute
name=
"name"
use=
"required"
type=
"xsd:string"
/>
<xsd:attribute
name=
"type"
type=
"xsd:string"
/>
<xsd:attribute
name=
"mimetype"
type=
"xsd:string"
/>
<xsd:attribute
ref=
"xml:space"
/>
</xsd:complexType>
</xsd:element>
<xsd:element
name=
"assembly"
>
<xsd:complexType>
<xsd:attribute
name=
"alias"
type=
"xsd:string"
/>
<xsd:attribute
name=
"name"
type=
"xsd:string"
/>
</xsd:complexType>
</xsd:element>
<xsd:element
name=
"data"
>
<xsd:complexType>
<xsd:sequence>
<xsd:element
name=
"value"
type=
"xsd:string"
minOccurs=
"0"
msdata:Ordinal=
"1"
/>
<xsd:element
name=
"comment"
type=
"xsd:string"
minOccurs=
"0"
msdata:Ordinal=
"2"
/>
</xsd:sequence>
<xsd:attribute
name=
"name"
type=
"xsd:string"
use=
"required"
msdata:Ordinal=
"1"
/>
<xsd:attribute
name=
"type"
type=
"xsd:string"
msdata:Ordinal=
"3"
/>
<xsd:attribute
name=
"mimetype"
type=
"xsd:string"
msdata:Ordinal=
"4"
/>
<xsd:attribute
ref=
"xml:space"
/>
</xsd:complexType>
</xsd:element>
<xsd:element
name=
"resheader"
>
<xsd:complexType>
<xsd:sequence>
<xsd:element
name=
"value"
type=
"xsd:string"
minOccurs=
"0"
msdata:Ordinal=
"1"
/>
</xsd:sequence>
<xsd:attribute
name=
"name"
type=
"xsd:string"
use=
"required"
/>
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader
name=
"resmimetype"
>
<value>
text/microsoft-resx
</value>
</resheader>
<resheader
name=
"version"
>
<value>
2.0
</value>
</resheader>
<resheader
name=
"reader"
>
<value>
System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
</value>
</resheader>
<resheader
name=
"writer"
>
<value>
System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
</value>
</resheader>
</root>
\ No newline at end of file
Tools/wExtend.cs
View file @
be173998
...
...
@@ -33,6 +33,7 @@ namespace Tools
this
.
CreateModule
(
typeof
(
UI
.
wImageSearch
),
"图片搜索"
,
"tr"
),
this
.
CreateModule
(
typeof
(
UI
.
wXmlGenerator
),
"XML生成器"
,
"tr"
),
this
.
CreateModule
(
typeof
(
UI
.
wModuleManager
),
"模块管理"
,
"tr"
),
this
.
CreateModule
(
typeof
(
UI
.
wLoginPwd
),
"登录密码"
,
"tr"
),
};
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment