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) # d3c0aaaf596e3299f695591f00fd75cb
v2 = 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 base64
name = "彭于晏"
res = base64. b64encode( name. encode( 'utf-8' ) )
print ( res)
data = base64. b64decode( res)
origin = data. decode( 'utf-8' )
print ( origin)