一、工具类

  •  md5加密工具类

  1. public class MD5Utils {
  2. private static final String hexDigIts[] = {"0","1","2","3","4","5","6","7","8","9","a","b","c","d","e","f"};
  3. /**
  4. * MD5加密
  5. * @param origin 字符
  6. * @param charsetname 编码
  7. * @return
  8. */
  9. public static String MD5Encode(String origin, String charsetname){
  10. String resultString = null;
  11. try{
  12. resultString = new String(origin);
  13. MessageDigest md = MessageDigest.getInstance("MD5");
  14. if(null == charsetname || "".equals(charsetname)){
  15. resultString = byteArrayToHexString(md.digest(resultString.getBytes()));
  16. }else{
  17. resultString = byteArrayToHexString(md.digest(resultString.getBytes(charsetname)));
  18. }
  19. }catch (Exception e){
  20. }
  21. return resultString;
  22. }
  23. public static String byteArrayToHexString(byte b[]){
  24. StringBuffer resultSb = new StringBuffer();
  25. for(int i = 0; i < b.length; i++){
  26. resultSb.append(byteToHexString(b[i]));
  27. }
  28. return resultSb.toString();
  29. }
  30. public static String byteToHexString(byte b){
  31. int n = b;
  32. if(n < 0){
  33. n += 256;
  34. }
  35. int d1 = n / 16;
  36. int d2 = n % 16;
  37. return hexDigIts[d1] + hexDigIts[d2];
  38. }
  39. }
  • base64加密工具类

  1. public class Base64Util {
  2. // 字符串编码
  3. private static final String UTF_8 = "UTF-8";
  4. /**
  5. * 加密字符串
  6. * @param inputData
  7. * @return
  8. */
  9. public static String decodeData(String inputData) {
  10. try {
  11. if (null == inputData) {
  12. return null;
  13. }
  14. return new String(Base64.decodeBase64(inputData.getBytes(UTF_8)), UTF_8);
  15. } catch (UnsupportedEncodingException e) {
  16. }
  17. return null;
  18. }
  19. /**
  20. * 解密加密后的字符串
  21. * @param inputData
  22. * @return
  23. */
  24. public static String encodeData(String inputData) {
  25. try {
  26. if (null == inputData) {
  27. return null;
  28. }
  29. return new String(Base64.encodeBase64(inputData.getBytes(UTF_8)), UTF_8);
  30. } catch (UnsupportedEncodingException e) {
  31. }
  32. return null;
  33. }
  34. public static void main(String[] args) {
  35. System.out.println(Base64Util.encodeData("我是中文"));
  36. String enStr = Base64Util.encodeData("我是中文");
  37. System.out.println(Base64Util.decodeData(enStr));
  38. }
  39. }
  • Bcrypt工具类

    <pre class="has" name="code"><code class="language-java hljs"><ol class="hljs-ln" style="width:841px"><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="1"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"><span class="hljs-keyword">public</span> <span class="hljs-class"><span class="hljs-keyword">class</span> <span class="hljs-title">BcryptCipher</span> </span>{</div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="2"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line">  <span class="hljs-comment">// generate salt seed</span></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="3"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line">  <span class="hljs-keyword">private</span> <span class="hljs-keyword">static</span> <span class="hljs-keyword">final</span> <span class="hljs-keyword">int</span> SALT_SEED = <span class="hljs-number">12</span>;</div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="4"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line">  <span class="hljs-comment">// the head fo salt</span></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="5"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line">  <span class="hljs-keyword">private</span> <span class="hljs-keyword">static</span> <span class="hljs-keyword">final</span> String SALT_STARTSWITH = <span class="hljs-string">"$2a$12"</span>;</div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="6"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line">  </div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="7"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line">  <span class="hljs-keyword">public</span> <span class="hljs-keyword">static</span> <span class="hljs-keyword">final</span> String SALT_KEY = <span class="hljs-string">"salt"</span>;</div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="8"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line">  </div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="9"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line">  <span class="hljs-keyword">public</span> <span class="hljs-keyword">static</span> <span class="hljs-keyword">final</span> String CIPHER_KEY = <span class="hljs-string">"cipher"</span>;</div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="10"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line">  </div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="11"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line">  <span class="hljs-comment"><span class="hljs-comment">/**</span></span></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="12"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"><span class="hljs-comment">   * Bcrypt encryption algorithm method</span></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="13"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"><span class="hljs-comment">   * <span class="hljs-doctag">@param</span> encryptSource</span></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="14"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"><span class="hljs-comment">   * need to encrypt the string</span></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="15"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"><span class="hljs-comment">   * <span class="hljs-doctag">@return</span> Map , two values in Map , salt and cipher</span></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="16"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"><span class="hljs-comment">   */</span></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="17"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line">  <span class="hljs-function"><span class="hljs-keyword">public</span> <span class="hljs-keyword">static</span> Map&lt;String, String&gt; <span class="hljs-title">Bcrypt</span><span class="hljs-params">(<span class="hljs-keyword">final</span> String encryptSource)</span> </span>{</div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="18"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line">    String salt = BCrypt.gensalt(SALT_SEED);</div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="19"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line">    Map&lt;String, String&gt; bcryptResult = Bcrypt(salt, encryptSource);</div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="20"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line">    <span class="hljs-keyword">return</span> bcryptResult;</div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="21"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line">  }</div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="22"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line">  <span class="hljs-comment"><span class="hljs-comment">/**</span></span></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="23"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"><span class="hljs-comment">   *</span></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="24"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"><span class="hljs-comment">   * <span class="hljs-doctag">@param</span> salt encrypt salt, Must conform to the rules</span></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="25"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"><span class="hljs-comment">   * <span class="hljs-doctag">@param</span> encryptSource</span></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="26"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"><span class="hljs-comment">   * <span class="hljs-doctag">@return</span></span></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="27"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"><span class="hljs-comment">   */</span></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="28"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line">  <span class="hljs-function"><span class="hljs-keyword">public</span> <span class="hljs-keyword">static</span> Map&lt;String, String&gt; <span class="hljs-title">Bcrypt</span><span class="hljs-params">(<span class="hljs-keyword">final</span> String salt, <span class="hljs-keyword">final</span> String encryptSource)</span> </span>{</div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="29"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line">    <span class="hljs-keyword">if</span> (StringUtils.isBlank(encryptSource)) {</div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="30"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line">      <span class="hljs-keyword">throw</span> <span class="hljs-keyword">new</span> RuntimeException(<span class="hljs-string">"Bcrypt encrypt input params can not be empty"</span>);</div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="31"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line">    }</div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="32"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line">    </div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="33"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line">    <span class="hljs-keyword">if</span> (StringUtils.isBlank(salt) || salt.length() != <span class="hljs-number">29</span>) {</div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="34"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line">      <span class="hljs-keyword">throw</span> <span class="hljs-keyword">new</span> RuntimeException(<span class="hljs-string">"Salt can't be empty and length must be to 29"</span>);</div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="35"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line">    }</div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="36"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line">    <span class="hljs-keyword">if</span> (!salt.startsWith(SALT_STARTSWITH)) {</div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="37"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line">      <span class="hljs-keyword">throw</span> <span class="hljs-keyword">new</span> RuntimeException(<span class="hljs-string">"Invalid salt version, salt version is $2a$12"</span>);</div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="38"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line">    }</div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="39"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line">    </div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="40"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line">    String cipher = BCrypt.hashpw(encryptSource, salt);</div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="41"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line">    Map&lt;String, String&gt; bcryptResult = <span class="hljs-keyword">new</span> HashMap&lt;String, String&gt;();</div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="42"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line">    bcryptResult.put(SALT_KEY, salt);</div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="43"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line">    bcryptResult.put(CIPHER_KEY, cipher);</div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="44"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line">    <span class="hljs-keyword">return</span> bcryptResult;</div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="45"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line">  }</div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="46"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line">  </div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="47"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line">}</div></div></li></ol></code><div class="hljs-button {2}" data-title="复制" onclick="hljs.copyCode(event)"></div></pre><p>&nbsp;</p>
    </li>
    

二、加密测试

MD5加密测试

  1. /**
  2. * MD5加密
  3. */
  4. public class MD5Test {
  5. public static void main(String[] args) {
  6. String string = "你好 世界";
  7. String byteArrayToHexString = MD5Utils.byteArrayToHexString(string.getBytes());
  8. System.out.println(byteArrayToHexString);//e68891e698afe4b880e58fa5e8af9d
  9. }
  10. }

base64加密测试

  1. /**
  2. * base64加密
  3. */
  4. public class Bast64Tester {
  5. public static void main(String[] args) {
  6. String string = "你好 世界";
  7. String encodeData = Base64Util.encodeData(string); //加密
  8. String decodeData = Base64Util.decodeData(encodeData); //解密
  9. System.out.println(encodeData);//5oiR5piv5LiA5Liq5a2X56ym5Liy
  10. System.out.println(decodeData);//你好 世界
  11. }
  12. }

SHA加密测试

  1. /**
  2. * SHA加密
  3. */
  4. public class ShaTest {
  5. public static void main(String[] args) {
  6. String string = "你好 世界";
  7. String sha256Crypt = Sha2Crypt.sha256Crypt(string.getBytes());
  8. System.out.println(sha256Crypt);//$5$AFoQTeyt$TiqmobvcQXjXaAQMYosAAO4KI8LfigZMGHzq.Dlp4NC
  9. }
  10. }
  • BCrypt加密测试

    <pre class="has" name="code"><code class="language-java hljs"><ol class="hljs-ln" style="width:984px"><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="1"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"><span class="hljs-comment"><span class="hljs-comment">/**</span></span></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="2"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"><span class="hljs-comment"> * BCrypt加密</span></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="3"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"><span class="hljs-comment"> */</span></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="4"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"><span class="hljs-keyword">public</span> <span class="hljs-class"><span class="hljs-keyword">class</span> <span class="hljs-title">BCryptTest</span> </span>{</div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="5"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line"> </div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="6"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line">  <span class="hljs-function"><span class="hljs-keyword">public</span> <span class="hljs-keyword">static</span> <span class="hljs-keyword">void</span> <span class="hljs-title">main</span><span class="hljs-params">(String[] args)</span> </span>{</div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="7"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line">    </div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="8"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line">    String string = <span class="hljs-string">"你好世界"</span>;</div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="9"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line">    Map&lt;String, String&gt; bcrypt = BcryptCipher.Bcrypt(string);</div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="10"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line">    System.out.println(bcrypt.keySet()); <span class="hljs-comment">//[cipher, salt]</span></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="11"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line">    </div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="12"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line">    System.out.println(bcrypt.get(<span class="hljs-string">"cipher"</span>)); <span class="hljs-comment">//$2a$12$ylb92Z84gqlrSfzIztlCV.dK0xNbw.pOv3UwXXA76llOsNRTJsE/.</span></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="13"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line">    System.out.println(bcrypt.get(<span class="hljs-string">"salt"</span>)); <span class="hljs-comment">//$2a$12$ylb92Z84gqlrSfzIztlCV.</span></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="14"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line">    </div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="15"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line">    Map&lt;String, String&gt; bcrypt2 = BcryptCipher.Bcrypt(bcrypt.get(<span class="hljs-string">"salt"</span>),string);</div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="16"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line">    System.out.println(bcrypt2.get(<span class="hljs-string">"SALT_KEY"</span>)); <span class="hljs-comment">//null</span></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="17"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line">    System.out.println(bcrypt2.get(<span class="hljs-string">"CIPHER_KEY"</span>)); <span class="hljs-comment">//null</span></div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="18"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line">  }</div></div></li><li><div class="hljs-ln-numbers"><div class="hljs-ln-line hljs-ln-n" data-line-number="19"></div></div><div class="hljs-ln-code"><div class="hljs-ln-line">}</div></div></li></ol></code><div class="hljs-button {2}" data-title="复制" onclick="hljs.copyCode(event)"></div></pre><p>&nbsp;</p>
    </li>
    

Java 常用的 4 种加密方式(MD5+Base64+SHA+BCrypt)相关推荐

  1. php中常用的几种加密方式以及md5加密漏洞以及解决方案

    一.md5(php中的最常用的加密方式) 在用md5进行加密时,至少要将md5加密两次以上(包含两次),或者再加上盐进行加密 二.password_hash(php5.5以上版本才可以使用) 官方说明 ...

  2. 安卓项目实战之:Android常用的5种加密方式

    前言 按加密结果是否可以被解密分为可逆和不可逆: 1,不可逆: MD5(Message-Digest消息摘要):不可逆,长度固定(32位),容易计算,仅一字节只差加密结果都会有很大区别 通常情况下为了 ...

  3. JS的3种加密方式:base64编码、md5加密及sha加密

    用法总结:创建加密js文件,引入加密js 注:md5.sha1加密方式有多种方法可用 1.加密js文件 1.1base64.js function Base64() {// private prope ...

  4. C#下的两种加密方式MD5和DEC

    md5加密 /// <summary>     /// MD5加密     /// </summary>     /// <param name="toCryS ...

  5. token令牌常用的四种加密方式

    1.base64 '防君子不防小人' 方法 作用 参数 返回值 b64encode 将输入的参数转化为base64规则的串 预加密的明文,类型为bytes:例:b'guoxiaonao' base64 ...

  6. PHP中的6种加密方式

    PHP中的6种加密方式 1. MD5加密 string md5 ( string $str [, bool $raw_output = false ] ) 参数 str  --  原始字符串. raw ...

  7. Java多线程的11种创建方式以及纠正网上流传很久的一个谬误

    创建线程比较传统的方式是继承Thread类和实现Runnable,也可以用内部类,Lambda表达式,线程池,FutureTask等. 经常面试会问到继承Thread类和实现Runnable的区别,然 ...

  8. spring入门之Spring 常用的三种注入方式

    Spring 常用的三种注入方式 Spring 通过 DI(依赖注入)实现 IOC(控制反转),常用的注入方式主要有三种:构造方法注入,set 方法注入,基于注解的注入. 一.通过构造方法注入 先简单 ...

  9. 一个计算机爱好者的不完整回忆(八)一种加密方式

    GB4,GW,FPE,当年老的DOS游戏玩家可能会有印象吧. 当年DOS命令刚学几堂课,就玩游戏了,有一个游戏叫天蚕变,俗称蜘蛛美女,就是用蜘蛛划线,当划走的区域达到一定百分比的时候就算过关,然后会出 ...

  10. 数据传输安全的几种加密方式

    Android数据加密安全 其他几种加密方式: Android数据加密之Rsa加密 Android数据加密之Aes加密 Android数据加密之Des加密 Android数据加密之MD5加密 Andr ...

最新文章

  1. Linux shell 学习笔记(6)— vim 编辑器使用方法及技巧
  2. SqlServer 中的临时表与表变量
  3. suList() 和 asList()
  4. Android Material Design TabLayout属性app:tabMode和app: tabGravity
  5. magento问题集
  6. MySql的存储过程
  7. python脚本自动运行失败_Linux中定时任务执行python脚本失败的解决方法
  8. RabbitMQ和Kafka的显著差异(5)
  9. [转]解决eclipse-helios中Errors running builder Java...
  10. GitHub简单教程
  11. opencv 图片缩放
  12. 足球比赛两强相遇概率
  13. 感受晋味新年俗 你的高铁票可享景区门票优惠
  14. easyphp 登陆mysql_EasyPHP 16.1.1无法启动MySQL
  15. 总结低代码海报平台编辑器难点
  16. js 伪造referer_详解php伪造Referer请求反盗链资源
  17. 如何合理规划每日时间
  18. 台达服务器电源性能怎么样,台达电源怎么样?该怎么选择台达电源?
  19. 测时差定位算法matlab,时差和频差无源定位方法研究matlab程序
  20. Arduino入门篇——继电器控制风扇

热门文章

  1. sql生成(查询数据的存储过程)代码的存储过程
  2. [收集]代码段(Code Snippets)
  3. Dahlia:一个现代化的 React 框架
  4. java 编程规范 check list
  5. 参数中带有“”符号问题
  6. hdu2243 ac自动机
  7. TechEd2011分享
  8. 8.微服务设计 --- 监控
  9. 37.Linux/Unix 系统编程手册(下) -- DAEMON
  10. 1.TCP/IP 详解卷1 --- 概述