文章目录 java中常见的加密 uuid 随机值 时间戳 十六进制字符串 md5 base64编码
java中常见的加密
uuid
- 生成全局唯一:可以用来做订单id号,手机设备的唯一id号- app端生成 uuid-- 存到本地-- 》每次发请求携带这个uuid
import java. util. UUID ;
public class Hello { public static void main ( String [ ] args) { String uid = UUID . randomUUID ( ) . toString ( ) ; System . out. println ( uid) ; }
}
import uuid
uid = str ( uuid. uuid4 ( ) )
print ( uid)
随机值
BigInteger v4 = new BigInteger ( 80 , new SecureRandom ( ) ) ;
String res = v4. toString ( 16 ) ;
System . out. println ( res) ;
import random
data = random. randbytes ( 10 )
ele_list = [ ]
for item in data: ele = hex ( item) [ 2 : ] ele_list. append ( ele)
res = "" . join ( ele_list)
print ( res)
import random
data = "" . join ( [ hex ( item) [ 2 : ] for item in random. randbytes ( 10 ) ] )
print ( data)
时间戳
String t1 = String . valueOf ( System . currentTimeMillis ( ) / 1000 ) ;
String t2 = String . valueOf ( System . currentTimeMillis ( ) ) ;
System . out. println ( t1) ;
System . out. println ( t2) ;
import time
v1 = int ( time. time ( ) )
v2 = int ( time. time ( ) * 1000 )
print ( v1)
print ( v2)
十六进制字符串
public static String bytesToHex ( byte [ ] bytes) { StringBuilder sb = new StringBuilder ( ) ; for ( byte b : bytes) { sb. append ( String . format ( "%02x" , b) ) ; } return sb. toString ( ) ; }
public static String bytesToHex ( byte [ ] bytes) { StringBuilder sb = new StringBuilder ( ) ; for ( byte b : bytes) { int i = b & 0xFF ; if ( i < 16 ) { sb. append ( '0' ) ; } sb. append ( Integer . toHexString ( i) ) ; } return sb. toString ( ) ; }
def byte_to_hex ( s: str) : b = s. encode ( 'utf-8' ) l = [ hex ( i) [ 2 : ] . rjust ( 2 , '0' ) for i in b]
md5
import java. security. MessageDigest ;
import java. security. NoSuchAlgorithmException ; public static String getMD5 ( String input) { try { MessageDigest md = MessageDigest . getInstance ( "MD5" ) ; md. update ( input. getBytes ( ) ) ; byte [ ] digest = md. digest ( ) ; StringBuilder hexString = new StringBuilder ( ) ; for ( byte b : digest) { String hex = Integer . toHexString ( 0xff & b) ; if ( hex. length ( ) == 1 ) hexString. append ( '0' ) ; hexString. append ( hex) ; } return hexString. toString ( ) ; } catch ( NoSuchAlgorithmException e) { throw new RuntimeException ( e) ; } }
import hashlib
obj = hashlib. md5 ( 'yyy' . encode ( 'utf-8' ) )
obj. update ( 'xxxxx' . encode ( 'utf-8' ) )
v1 = obj. hexdigest ( )
print ( v1) # d3c0aaaf596e3299f695591f00fd75cbv2 = obj. digest ( )
print ( v2)
base64编码
String name = "彭于晏" ;
Base64. Encoder encoder = Base64. getEncoder( ) ;
String res = encoder. encodeToString( name. getBytes( ) ) ;
System. out. println( res) ;
Base64. Decoder decoder = Base64. getDecoder( ) ;
byte[ ] origin = decoder. decode( res) ;
String data = new String( origin) ;
System. out. println( data) ; // 彭于晏
import base64name = "彭于晏"
res = base64. b64encode( name. encode( 'utf-8' ) )
print ( res) data = base64. b64decode( res)
origin = data. decode( 'utf-8' )
print ( origin)