Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Contribute to GitLab
Sign in
Toggle navigation
C
common
Project
Project
Details
Activity
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
曲欣亮
common
Commits
f54ea7b6
Commit
f54ea7b6
authored
Jun 24, 2019
by
张永
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
1
parent
8a3ecbb9
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
96 additions
and
93 deletions
+96
-93
MD5Util.java
src/main/java/com/egolm/common/MD5Util.java
+96
-93
No files found.
src/main/java/com/egolm/common/MD5Util.java
View file @
f54ea7b6
package
com
.
egolm
.
common
;
import
java.security.MessageDigest
;
import
java.util.Iterator
;
import
java.util.Map.Entry
;
import
java.util.Set
;
import
java.util.SortedMap
;
import
java.util.TreeMap
;
public
class
MD5Util
{
/**
* 签名算法sign
* @param characterEncoding
* @param parameters
* @return
*/
public
static
String
createSign
(
String
characterEncoding
,
SortedMap
<
Object
,
Object
>
parameters
){
StringBuffer
sb
=
new
StringBuffer
();
Set
<?>
es
=
parameters
.
entrySet
();
//所有参与传参的参数按照accsii排序(升序)
Iterator
<?>
it
=
es
.
iterator
();
while
(
it
.
hasNext
())
{
Entry
<?,
?>
entry
=
(
Entry
<?,
?>)
it
.
next
();
String
k
=
(
String
)
entry
.
getKey
();
Object
v
=
entry
.
getValue
();
if
(
null
!=
v
&&
!
""
.
equals
(
v
)&&
!
"sign"
.
equals
(
k
)
)
{
sb
.
append
(
k
+
"="
+
v
+
"&"
);
}
}
sb
.
deleteCharAt
(
sb
.
length
()-
1
);
System
.
out
.
println
(
sb
.
toString
());
String
sign
=
MD5Encode
(
sb
.
toString
(),
characterEncoding
).
toUpperCase
();
return
sign
;
}
private
static
String
byteArrayToHexString
(
byte
b
[])
{
StringBuffer
resultSb
=
new
StringBuffer
();
for
(
int
i
=
0
;
i
<
b
.
length
;
i
++)
resultSb
.
append
(
byteToHexString
(
b
[
i
]));
return
resultSb
.
toString
();
}
private
static
String
byteToHexString
(
byte
b
)
{
int
n
=
b
;
if
(
n
<
0
)
n
+=
256
;
int
d1
=
n
/
16
;
int
d2
=
n
%
16
;
return
hexDigits
[
d1
]
+
hexDigits
[
d2
];
}
public
static
String
MD5Encode
(
String
origin
,
String
charsetname
)
{
String
resultString
=
null
;
try
{
resultString
=
new
String
(
origin
);
MessageDigest
md
=
MessageDigest
.
getInstance
(
"MD5"
);
if
(
charsetname
==
null
||
""
.
equals
(
charsetname
))
resultString
=
byteArrayToHexString
(
md
.
digest
(
resultString
.
getBytes
()));
else
resultString
=
byteArrayToHexString
(
md
.
digest
(
resultString
.
getBytes
(
charsetname
)));
}
catch
(
Exception
exception
)
{
}
return
resultString
;
}
private
static
final
String
hexDigits
[]
=
{
"0"
,
"1"
,
"2"
,
"3"
,
"4"
,
"5"
,
"6"
,
"7"
,
"8"
,
"9"
,
"a"
,
"b"
,
"c"
,
"d"
,
"e"
,
"f"
};
public
static
void
main
(
String
[]
args
)
{
SortedMap
<
Object
,
Object
>
parameters
=
new
TreeMap
<
Object
,
Object
>
();
parameters
.
put
(
"smsType"
,
"cl"
);
parameters
.
put
(
"mobile"
,
"18607278529"
);
parameters
.
put
(
"content"
,
"验证码:123456"
);
parameters
.
put
(
"timestamp"
,
"1515462745539"
);
parameters
.
put
(
"md5Key"
,
"E67720C4E7B84615D7EAF106EBC8E677"
);
String
createSign
=
MD5Util
.
createSign
(
"UTF-8"
,
parameters
);
System
.
out
.
println
(
createSign
);
/* String str = "lcN7013719"; //计算一个MD5KEY
System.out.println(MD5Encode(str,"UTF-8").toUpperCase());*/
}
}
package
com
.
egolm
.
common
;
import
java.security.MessageDigest
;
import
java.util.Iterator
;
import
java.util.Map.Entry
;
import
java.util.Set
;
import
java.util.SortedMap
;
import
java.util.TreeMap
;
public
class
MD5Util
{
/**
* 签名算法sign
* @param characterEncoding
* @param parameters
* @return
*/
public
static
String
createSign
(
String
characterEncoding
,
SortedMap
<
Object
,
Object
>
parameters
){
StringBuffer
sb
=
new
StringBuffer
();
Set
<?>
es
=
parameters
.
entrySet
();
//所有参与传参的参数按照accsii排序(升序)
Iterator
<?>
it
=
es
.
iterator
();
while
(
it
.
hasNext
())
{
Entry
<?,
?>
entry
=
(
Entry
<?,
?>)
it
.
next
();
String
k
=
(
String
)
entry
.
getKey
();
Object
v
=
entry
.
getValue
();
if
(
null
!=
v
&&
!
""
.
equals
(
v
)&&
!
"sign"
.
equals
(
k
)
)
{
sb
.
append
(
k
+
"="
+
v
+
"&"
);
}
}
sb
.
deleteCharAt
(
sb
.
length
()-
1
);
System
.
out
.
println
(
"签名的字符串:"
+
sb
.
toString
());
String
sign
=
MD5Encode
(
sb
.
toString
(),
characterEncoding
).
toUpperCase
();
return
sign
;
}
private
static
String
byteArrayToHexString
(
byte
b
[])
{
StringBuffer
resultSb
=
new
StringBuffer
();
for
(
int
i
=
0
;
i
<
b
.
length
;
i
++)
resultSb
.
append
(
byteToHexString
(
b
[
i
]));
return
resultSb
.
toString
();
}
private
static
String
byteToHexString
(
byte
b
)
{
int
n
=
b
;
if
(
n
<
0
)
n
+=
256
;
int
d1
=
n
/
16
;
int
d2
=
n
%
16
;
return
hexDigits
[
d1
]
+
hexDigits
[
d2
];
}
public
static
String
MD5Encode
(
String
origin
,
String
charsetname
)
{
String
resultString
=
null
;
try
{
resultString
=
new
String
(
origin
);
MessageDigest
md
=
MessageDigest
.
getInstance
(
"MD5"
);
if
(
charsetname
==
null
||
""
.
equals
(
charsetname
))
resultString
=
byteArrayToHexString
(
md
.
digest
(
resultString
.
getBytes
()));
else
resultString
=
byteArrayToHexString
(
md
.
digest
(
resultString
.
getBytes
(
charsetname
)));
}
catch
(
Exception
exception
)
{
}
return
resultString
;
}
private
static
final
String
hexDigits
[]
=
{
"0"
,
"1"
,
"2"
,
"3"
,
"4"
,
"5"
,
"6"
,
"7"
,
"8"
,
"9"
,
"a"
,
"b"
,
"c"
,
"d"
,
"e"
,
"f"
};
public
static
void
main
(
String
[]
args
)
{
SortedMap
<
Object
,
Object
>
parameters
=
new
TreeMap
<
Object
,
Object
>
();
parameters
.
put
(
"AppID"
,
"E34EAAAFCC714ABA"
);
parameters
.
put
(
"AppKey"
,
"F7FC3382E34EAAAFCC714ABA172FD00C"
);
parameters
.
put
(
"LangID"
,
"936"
);
parameters
.
put
(
"ServerID"
,
"Scan_CheckMemPointCoupon"
);
parameters
.
put
(
"ServerTypeID"
,
1
);
parameters
.
put
(
"timestamp"
,
"1560474936524"
);
System
.
out
.
println
(
parameters
);
String
createSign
=
MD5Util
.
createSign
(
"UTF-8"
,
parameters
);
System
.
out
.
println
(
createSign
);
/* String str = "lcN7013719"; //计算一个MD5KEY
System.out.println(MD5Encode(str,"UTF-8").toUpperCase());*/
}
}
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