SHACoder.java 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118
  1. /*
  2. * FileName:SHACoder.java
  3. * <p>
  4. * Copyright (c) 2017-2020, <a href="http://www.webcsn.com">hermit (794890569@qq.com)</a>.
  5. * <p>
  6. * Licensed under the GNU General Public License, Version 3 (the "License");
  7. * you may not use this file except in compliance with the License.
  8. * You may obtain a copy of the License at
  9. * <p>
  10. * http://www.gnu.org/licenses/gpl-3.0.html
  11. * <p>
  12. * Unless required by applicable law or agreed to in writing, software
  13. * distributed under the License is distributed on an "AS IS" BASIS,
  14. * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  15. * See the License for the specific language governing permissions and
  16. * limitations under the License.
  17. *
  18. */
  19. package cn.com.lzt.common.util.coder;
  20. import cn.com.lzt.common.util.security.SecurityCoder;
  21. import java.security.MessageDigest;
  22. /**
  23. * SHA加密组件
  24. *
  25. * @author ShenHuaJie
  26. * @version 1.0
  27. * @since 1.0
  28. */
  29. public abstract class SHACoder extends SecurityCoder {
  30. /**
  31. * SHA-1加密
  32. *
  33. * @param data 待加密数据
  34. * @return byte[] 消息摘要
  35. * @throws Exception
  36. */
  37. public static byte[] encodeSHA(byte[] data) throws Exception {
  38. // 初始化MessageDigest
  39. MessageDigest md = MessageDigest.getInstance("SHA");
  40. // 执行消息摘要
  41. return md.digest(data);
  42. }
  43. /**
  44. * SHA-1加密
  45. *
  46. * @param data 待加密数据
  47. * @return byte[] 消息摘要
  48. * @throws Exception
  49. */
  50. public static byte[] encodeSHA1(byte[] data) throws Exception {
  51. // 初始化MessageDigest
  52. MessageDigest md = MessageDigest.getInstance("SHA-1");
  53. // 执行消息摘要
  54. return md.digest(data);
  55. }
  56. /**
  57. * SHA-256加密
  58. *
  59. * @param data 待加密数据
  60. * @return byte[] 消息摘要
  61. * @throws Exception
  62. */
  63. public static byte[] encodeSHA256(byte[] data) throws Exception {
  64. // 初始化MessageDigest
  65. MessageDigest md = MessageDigest.getInstance("SHA-256");
  66. // 执行消息摘要
  67. return md.digest(data);
  68. }
  69. /**
  70. * SHA-384加密
  71. *
  72. * @param data 待加密数据
  73. * @return byte[] 消息摘要
  74. * @throws Exception
  75. */
  76. public static byte[] encodeSHA384(byte[] data) throws Exception {
  77. // 初始化MessageDigest
  78. MessageDigest md = MessageDigest.getInstance("SHA-384");
  79. // 执行消息摘要
  80. return md.digest(data);
  81. }
  82. /**
  83. * SHA-512加密
  84. *
  85. * @param data 待加密数据
  86. * @return byte[] 消息摘要
  87. * @throws Exception
  88. */
  89. public static byte[] encodeSHA512(byte[] data) throws Exception {
  90. // 初始化MessageDigest
  91. MessageDigest md = MessageDigest.getInstance("SHA-512");
  92. // 执行消息摘要
  93. return md.digest(data);
  94. }
  95. /**
  96. * SHA-224加密
  97. *
  98. * @param data 待加密数据
  99. * @return byte[] 消息摘要
  100. * @throws Exception
  101. */
  102. public static byte[] encodeSHA224(byte[] data) throws Exception {
  103. // 初始化MessageDigest
  104. MessageDigest md = MessageDigest.getInstance("SHA-224");
  105. // 执行消息摘要
  106. return md.digest(data);
  107. }
  108. }