base64证书转certificate工具类
需引入bcprov-jdk15on-1.68包
package com.reach.platform.commons.core.utils;import org.bouncycastle.asn1.ASN1InputStream;
import org.bouncycastle.asn1.ASN1ObjectIdentifier;
import org.bouncycastle.asn1.ASN1Sequence;
import org.bouncycastle.asn1.x509.Extension;
import org.bouncycastle.asn1.x509.Extensions;
import sun.misc.BASE64Decoder;import java.io.ByteArrayInputStream;
import java.security.cert.Certificate;
import java.security.cert.CertificateFactory;
import java.security.cert.X509Certificate;
import java.text.SimpleDateFormat;public class CertParseUtil {public static org.bouncycastle.asn1.x509.Certificate getCert(String base64cert) {try {byte[] buffer = new BASE64Decoder().decodeBuffer(base64cert);ByteArrayInputStream bIn = new ByteArrayInputStream(buffer);ASN1InputStream dIn = new ASN1InputStream(bIn);ASN1Sequence seq = (ASN1Sequence) dIn.readObject();org.bouncycastle.asn1.x509.Certificate cert = org.bouncycastle.asn1.x509.Certificate.getInstance(seq);return cert;} catch (Exception e) {e.printStackTrace();}return null;}public static String getVersion(org.bouncycastle.asn1.x509.Certificate cert) {return String.valueOf(cert.getVersion());}public static String getSerialNumber(org.bouncycastle.asn1.x509.Certificate cert) {return cert.getSerialNumber().getValue().toString(16);}public static String getSignatureAlgorithm(org.bouncycastle.asn1.x509.Certificate cert) {return cert.getSignatureAlgorithm().getAlgorithm().getId();}public static String getIssuer(org.bouncycastle.asn1.x509.Certificate cert) {return cert.getIssuer().toString();}public static String getStartDate(org.bouncycastle.asn1.x509.Certificate cert) {String num = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(cert.getStartDate().getDate());return num;}public static String getEndDate(org.bouncycastle.asn1.x509.Certificate cert) {String num = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(cert.getEndDate().getDate());return num;}public static String getSubject(org.bouncycastle.asn1.x509.Certificate cert) {return cert.getSubject().toString();}public static String getPK(org.bouncycastle.asn1.x509.Certificate cert) {try {String pk = cert.getSubjectPublicKeyInfo().getPublicKeyData().toString();if (getSignatureAlgorithm(cert).equals("1.2.156.10197.1.501")) {pk = pk.substring(7, pk.length());} else {pk = pk.substring(9, pk.length());}return pk;} catch (Exception e) {e.printStackTrace();return null;}}public static byte[] getExtensionBytes(String oid, Extensions exts) {if (exts != null) {Extension ext = exts.getExtension(new ASN1ObjectIdentifier(oid));if (ext != null) {return ext.getExtnValue().getOctets();}}return new byte[0];}public static String getOnlyCode(org.bouncycastle.asn1.x509.Certificate cert) {String id = cert.getSignatureAlgorithm().getAlgorithm().getId();return new String(getExtensionBytes("1.2.156.10197.1.501", cert.getTBSCertificate().getExtensions()));}public static String getDN(String subject, String item) {String str = "";String[] sdn = subject.split(",");for (int ii = 0; ii < sdn.length; ii++) {String[] stmp = sdn[ii].split("=");if (stmp[0].trim().equalsIgnoreCase(item)) {str = stmp[1].trim();return str;}}return str;}public static X509Certificate getRSACert(String base64cert) {try {base64cert = "-----BEGIN CERTIFICATE-----\n" + base64cert;base64cert = base64cert + "\n-----END CERTIFICATE-----";ByteArrayInputStream stream = new ByteArrayInputStream(base64cert.getBytes());CertificateFactory cf = CertificateFactory.getInstance("X.509");Certificate c1 = cf.generateCertificate(stream);X509Certificate cert = (X509Certificate) c1;return cert;} catch (Exception e) {e.printStackTrace();}return null;}public static String getVersion(X509Certificate cert) {return String.valueOf(cert.getVersion());}public static String getSerialNumber(X509Certificate cert) {return cert.getSerialNumber().toString(16);}public static String getSignatureAlgorithm(X509Certificate cert) {return cert.getSigAlgOID();}public static String getIssuer(X509Certificate cert) {return cert.getIssuerDN().toString();}public static String getStartDate(X509Certificate cert) {String num = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(cert.getNotBefore());return num;}public static String getEndDate(X509Certificate cert) {String num = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(cert.getNotAfter());return num;}public static String getSubject(X509Certificate cert) {return cert.getSubjectDN().toString();}public static String getOnlyCode(X509Certificate cert) {return cert.getExtensionValue("1.2.156.112578.1").toString();}public static void main(String[] args) {//sm2公钥base64
// String base64Code = "MIIC0zCCAnegAwIBAgIMYGcAAAEygQbJTT0ZMAwGCCqBHM9VAYN1BQAwYTELMAkGA1UEBhMCQ04xDzANBgNVBAgMBmZ1amlhbjEtMCsGA1UECgwkRnVqaWFuIERpZ2l0YWwgQ2VydGlmaWNhdGUgQXV0aG9yaXR5MRIwEAYDVQQDDAlGSkNBRkNTTTIwHhcNMjEwNDA3MTYwMDAwWhcNMjEwNDA5MTU1OTU5WjAjMQswCQYDVQQGEwJDTjEUMBIGA1UEAwwL6buE5pONLTA4XzEwWTATBgcqhkjOPQIBBggqgRzPVQGCLQNCAAQra2omRFYO3d09/w3Lao3EAUXn0GmzqVOlqInkHJx0yojFEJzrZO9FY9jA55nVjY6mFpxGSNOcYC/zWC3iomNMo4IBTzCCAUswDAYDVR0TBAUwAwEBADATBgNVHSUEDDAKBggrBgEFBQcDAjALBgNVHQ8EBAMCAMAwEQYJYIZIAYb4QgEBBAQDAgCAMCYGCCqBHNAUBAEBBBozNTA3ODExOTkwMTEyMDAwMTRzaXQtMDhfMTAfBgNVHSMEGDAWgBSQOydnpjCYvWgkB3AklcH7MmogITBOBgNVHR8ERzBFMEOgQaA/hj1odHRwOi8vMjAyLjEwOS4xOTQuMjMwOjg4ODAvZG93bmxvYWQvRkpDQUZDU00ycGFydDRncm91cDguY3JsME4GCCsGAQUFBwEBBEIwQDA+BggrBgEFBQcwAoYyaHR0cDovLzIwMi4xMDkuMTk0LjIzMDo4ODgwL2Rvd25sb2FkL0ZKQ0FGQ1NNMi5jZXIwHQYDVR0OBBYEFLMSG2TplEpiEChhnMyMxHLX72cyMAwGCCqBHM9VAYN1BQADSAAwRQIgc0dszjYko7v4yYvThMp/yUZ8O2J0NngzqPrbdsvMeZICIQCkUvTrUZOPtIhA5t/ZJISlv1ylWIQR7wA66Clj7IEcvg==";
// String base64Code = "MIIENTCCA9mgAwIBAgIQaeIAAAEIWbXgRIngs6+C0zAMBggqgRzPVQGDdQUAMGIxCzAJBgNVBAYTAkNOMRIwEAYDVQQIDAnnpo/lu7rnnIExLTArBgNVBAoMJEZ1amlhbiBEaWdpdGFsIENlcnRpZmljYXRlIEF1dGhvcml0eTEQMA4GA1UEAwwHRkpDQVNNMjAeFw0yMTAxMTIxNjAwMDBaFw0yMjAxMTMxNTU5NTlaMF4xCzAJBgNVBAYTAkNOMRIwEAYDVQQIDAnnpo/lu7rnnIExEjAQBgNVBAcMCeemj+W3nuW4gjEnMCUGA1UEAwwe5qyn6Ziz56uL77yI5rWL6K+V5LiT55So5LiJ77yJMFkwEwYHKoZIzj0CAQYIKoEcz1UBgi0DQgAER55SlRkM5Xb0u0fjSL//nG/XDNxVChT1NLtqZN/hEVDQJDaj7tGUlIdQchXgliX/Z/W+kvfqD6hIqirwcznmpaOCAnEwggJtMAwGA1UdEwQFMAMBAQAwHQYDVR0lBBYwFAYIKwYBBQUHAwIGCCsGAQUFBwMEMAsGA1UdDwQEAwIAwDAiBgcqgRyG70IBBBc2MDE2QDIwOTRAMDAwMDAxMjMzNDY2MzAeBggqgRzQFAQBAQQSMzUwMTAyMTk4NzAyMjYyODFYMB8GA1UdIwQYMBaAFNOyMO38peg+Oq5so8pPvMgN4yZ1MIHSBgNVHR8EgcowgccwgcSggcGggb6GgY5sZGFwOi8vMjAyLjEwOS4xOTQuMjI5OjM4OS9DTj1GSkNBU00yLENOPUZKQ0FTTTIsIE9VPUNSTERpc3RyaWJ1dGVQb2ludHMsIGM9Y24/Y2VydGlmaWNhdGVSZXZvY2F0aW9uTGlzdD9iYXNlP29iamVjdGNsYXNzPWNSTERpc3RyaWJ1dGlvblBvaW50hitodHRwOi8vMjAyLjEwOS4xOTQuMjI5L2Rvd25sb2FkL0ZKQ0FTTTIuY3JsMIHXBggrBgEFBQcBAQSByjCBxzCBiwYIKwYBBQUHMAKGf2xkYXA6Ly8yMDIuMTA5LjE5NC4yMjk6Mzg5L0NOPUZKQ0FTTTIsQ049RkpDQVNNMiwgT1U9Y0FDZXJ0aWZpY2F0ZXMsIGM9Y24/Y0FDZXJ0aWZpY2F0ZT9iYXNlP29iamVjdENsYXNzPWNlcnRpZmljYXRpb25BdXRob3JpdHkwNwYIKwYBBQUHMAKGK2h0dHA6Ly8yMDIuMTA5LjE5NC4yMjkvZG93bmxvYWQvRkpDQVNNMi5jZXIwHQYDVR0OBBYEFGXFp+wmBkDulfWncILAJ0xxV1o3MAwGCCqBHM9VAYN1BQADSAAwRQIgfByWDh5cHODlx50S+OsQ32JWZdXhu6X5H38sBH+kXRkCIQDj9IfdLP4GXN5Cvl7FZj/UZjOMQS4/D2G4SFx3VvLOAA==";//rsa公钥base64String base64Code = "MIIFODCCBCCgAwIBAgIQA/8AAAAiUQeb5I8J2sXIITANBgkqhkiG9w0BAQUFADBcMQswCQYDVQQGEwJDTjEPMA0GA1UECAwGZnVqaWFuMS0wKwYDVQQKDCRGdWppYW4gRGlnaXRhbCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkxDTALBgNVBAMMBEZKQ0EwHhcNMTgwNzAyMTYwMDAwWhcNMTkwNzAzMTU1OTU5WjB/MQswCQYDVQQGEwJDTjESMBAGA1UECAwJ56aP5bu655yBMRIwEAYDVQQHDAnnpo/lt57luIIxSDBGBgNVBAMMP+emj+W7uueRnuacr+S/oeaBr+enkeaKgOaciemZkOWFrOWPuO+8iOS4muWKoeS4k+eUqOS6jOWNgeWFq++8iTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA1jc4lO0jGQSU8OQAHOZZmZCum0H0hOqop8HJkDmbmPLYD3ZItbgaDZyeyHAj9FGuwRCzTpDA3iP4DULTMpfOwMJH9QKQvjxYFluQEpOIq9Bxkc7cIddjScVYb01cSV/XOT9kBKhkNGCMvXKoMdtLat6oyv9OAiPBT9sq9W3YS4MCAwEAAaOCAlUwggJRMAwGA1UdEwQFMAMBAQAwEwYDVR0lBAwwCgYIKwYBBQUHAwIwCwYDVR0PBAQDAgDoMCIGByqBHIbvQgEEFzYwMTZAMTA1OUAwMDAwMDEwNDI4NDI0MB4GCCqBHNAUBAEDBBI5MTM1MDEwMjA1MjMwNzE1MUQwHwYDVR0jBBgwFoAU+zBVFXwtgR+F1qdDcLDTGLR0qKowgckGA1UdHwSBwTCBvjCBu6CBuKCBtYaBiGxkYXA6Ly8yMDIuMTA5LjE5NC4yMjk6Mzg5L0NOPUZKQ0EsQ049RkpDQSwgT1U9Q1JMRGlzdHJpYnV0ZVBvaW50cywgYz1jbj9jZXJ0aWZpY2F0ZVJldm9jYXRpb25MaXN0P2Jhc2U/b2JqZWN0Y2xhc3M9Y1JMRGlzdHJpYnV0aW9uUG9pbnSGKGh0dHA6Ly8yMDIuMTA5LjE5NC4yMjkvZG93bmxvYWQvRkpDQS5jcmwwgc4GCCsGAQUFBwEBBIHBMIG+MIGFBggrBgEFBQcwAoZ5bGRhcDovLzIwMi4xMDkuMTk0LjIyOTozODkvQ049RkpDQSxDTj1GSkNBLCBPVT1jQUNlcnRpZmljYXRlcywgYz1jbj9jQUNlcnRpZmljYXRlP2Jhc2U/b2JqZWN0Q2xhc3M9Y2VydGlmaWNhdGlvbkF1dGhvcml0eTA0BggrBgEFBQcwAoYoaHR0cDovLzIwMi4xMDkuMTk0LjIyOS9kb3dubG9hZC9GSkNBLmNlcjAdBgNVHQ4EFgQUqJHG6K43u3PtSmB/uhkmIQ92hVYwDQYJKoZIhvcNAQEFBQADggEBANGQ4+Yk/o2W7wIt7LxMBls/zAdS3k4rVQ1945pijuroPK+isjnfRxRdFGsSSGA2QFYaaxqy2VPFVUbDKHBA0FqJza4XqN9oEnEM/fL8sxb4oBy5XgqDEb6rlkJQzqzfcTCMz7W3WJWMUYorNgX92DSSQNHbx3m5YUAXNtzEZdAEhh6Ki0JV3+x/pbrfnFdibqyCfshLc7y4neaRbMR32tDo5Hq5MtJwHUNwhCr4MKV+BIBWFryXCS9LYu0wOM8NyX3qBzbz32gxiB/gmIexdQnGDYQ4up3DAli5TYmH8iZfztJvCtsPpCjgzrbG7uQftwUBXs8svBKtoY8mnM7Oh30=";//String base64Code="MIIFXDCCBESgAwIBAgIQA/8AAAAevQzBkQiYiKosbzANBgkqhkiG9w0BAQUFADBcMQswCQYDVQQGEwJDTjEPMA0GA1UECAwGZnVqaWFuMS0wKwYDVQQKDCRGdWppYW4gRGlnaXRhbCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkxDTALBgNVBAMMBEZKQ0EwHhcNMTcxMjE3MTYwMDAwWhcNMjAxMDA1MDIwMzI3WjCBwjELMAkGA1UEBhMCQ04xEjAQBgNVBAgMCeemj W7uuecgTESMBAGA1UEBwwJ56aP5bee5biCMRswGQYDVQQLDBI5MTM1MDEwMjA1MjMwNzE1MUQxJDAiBgNVBAsMG atpOivgeS5puS7heS9v eUqOS6jua1i ivlTFIMEYGA1UEAww/56aP5bu655Ge5pyv5L h5oGv56eR5oqA5pyJ6ZmQ5YWs5Y 477yI5rWL6K V5LiT55So5LqU5Y2B5LiD77yJMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDsjb08MO 1sxAfzs 85o0wLqEoLjr7vAZ/wRWpXkjA0gO/mUOhbmlJMxTuvlR633wjsm JnLcQ76MaXPdcv3mPYc6xNOw8nY8sqFx02C3X2t0HLqR0D W JxH5 su/yP8H2iOVx87ow4dnEc332PNe45fFywTSFBJ5EpzlQff7FwIDAQABo4ICNTCCAjEwDAYDVR0TBAUwAwEBADATBgNVHSUEDDAKBggrBgEFBQcDAjALBgNVHQ8EBAMCAOgwIgYHKoEchu9CAQQXNjAxNkAxMDU5QDAwMDAwMDk5OTIxNzYwHwYDVR0jBBgwFoAU zBVFXwtgR F1qdDcLDTGLR0qKowgckGA1UdHwSBwTCBvjCBu6CBuKCBtYaBiGxkYXA6Ly8yMDIuMTA5LjE5NC4yMjk6Mzg5L0NOPUZKQ0EsQ049RkpDQSwgT1U9Q1JMRGlzdHJpYnV0ZVBvaW50cywgYz1jbj9jZXJ0aWZpY2F0ZVJldm9jYXRpb25MaXN0P2Jhc2U/b2JqZWN0Y2xhc3M9Y1JMRGlzdHJpYnV0aW9uUG9pbnSGKGh0dHA6Ly8yMDIuMTA5LjE5NC4yMjkvZG93bmxvYWQvRkpDQS5jcmwwgc4GCCsGAQUFBwEBBIHBMIG MIGFBggrBgEFBQcwAoZ5bGRhcDovLzIwMi4xMDkuMTk0LjIyOTozODkvQ049RkpDQSxDTj1GSkNBLCBPVT1jQUNlcnRpZmljYXRlcywgYz1jbj9jQUNlcnRpZmljYXRlP2Jhc2U/b2JqZWN0Q2xhc3M9Y2VydGlmaWNhdGlvbkF1dGhvcml0eTA0BggrBgEFBQcwAoYoaHR0cDovLzIwMi4xMDkuMTk0LjIyOS9kb3dubG9hZC9GSkNBLmNlcjAdBgNVHQ4EFgQUV wNTZJd 1KNtnZUOVHEBi2UJhYwDQYJKoZIhvcNAQEFBQADggEBAMUWcW6QKjjM86WNYrIpgwsj1mhSgkDMiSAq1OnowOkHKxv/yWFLgq7x3LSoeH p5YWQfutVQmKCfu17PSaclwE8htLqOeg9XumtPoc87h4Lfrvn66SLwYf/RZh7XMLPycIaku7iF9kNRT83dzFKWdaA5l82iTccvG Tfdd7bXBpO3f/iM/neoQFgzBZlLvRPwzJhaeoffRqHOS2pVjbCC7Q1ljXAKL3vrYmebYdZ0kGlk1Vtd4FdGYkTSIjdVoLYiygGgLxiz0J3aL92b3uvMdb7qBSrX alDPHEJIHanlksfonmFD0OyLsr9sqj4BUi1 EaJkuEi8O3Bq8jkW dyc=";//String base64Code="MIIEHTCCA8GgAwIBAgIQA/cAAAAA1kDzVTR84pIUpTAMBggqgRzPVQGDdQUAMDQxCzAJBgNVBAYTAkNOMQ8wDQYDVQQIDAZmdWppYW4xFDASBgNVBAMMC3Rlc3RmamNhc20yMB4XDTE5MDgyMzA2MDUwOVoXDTIwMDgyMjE1NTk1OVowSTELMAkGA1UEBhMCQ04xEjAQBgNVBAgMCeemj+W7uuecgTESMBAGA1UEBwwJ56aP5bee5biCMRIwEAYDVQQDDAnnvZflsJE1XzEwWTATBgcqhkjOPQIBBggqgRzPVQGCLQNCAATPL7DmeuHnm8NOypzWA4UqEAKX5yjn6G5QEraK29vVHSBKENeK056pc+W0ZvrAPeqCCECAMDRXay3hea3dQE3Jo4ICnDCCApgwDAYDVR0TBAUwAwEBADATBgNVHSUEDDAKBggrBgEFBQcDAjALBgNVHQ8EBAMCAMAwIgYHKoEchu9CAQQXNjAxNkAxMTYwQDAwMDAwMDAwMTUwNTUwIAYIKoEc0BQEAQMEFDM2MjUzMTE5OTExMjAxMDMzMV8xMCAGCCqBHNAUBAEEBBQzNjI1MzExOTkxMTIwMTAzMzFfMTAfBgNVHSMEGDAWgBTBAuEZk26ZbFA/IleDOEmRaVIWBDCB2gYDVR0fBIHSMIHPMIHMoIHJoIHGhoGUbGRhcDovLzE5Mi4xNjguMTMuODA6Mzg5L0NOPXRlc3RmamNhc20yLENOPXRlc3RmamNhc20yLCBPVT1DUkxEaXN0cmlidXRlUG9pbnRzLCBjPWNuP2NlcnRpZmljYXRlUmV2b2NhdGlvbkxpc3Q/YmFzZT9vYmplY3RjbGFzcz1jUkxEaXN0cmlidXRpb25Qb2ludIYtaHR0cDovLzE5Mi4xNjguMTMuODAvZG93bmxvYWQvdGVzdGZqY2FzbTIuY3JsMIHgBggrBgEFBQcBAQSB0zCB0DCBkgYIKwYBBQUHMAKGgYVsZGFwOi8vMTkyLjE2OC4xMy44MDozODkvQ049dGVzdGZqY2FzbTIsQ049dGVzdGZqY2FzbTIsIE9VPWNBQ2VydGlmaWNhdGVzLCBjPWNuP2NBQ2VydGlmaWNhdGU/YmFzZT9vYmplY3RDbGFzcz1jZXJ0aWZpY2F0aW9uQXV0aG9yaXR5MDkGCCsGAQUFBzAChi1odHRwOi8vMTkyLjE2OC4xMy44MC9kb3dubG9hZC90ZXN0ZmpjYXNtMi5jZXIwHQYDVR0OBBYEFE+/fu/meKbt9J5o2N2PCafwaNmgMAwGCCqBHM9VAYN1BQADSAAwRQIgeyqmB5idIcUUWVOu+6CyDpGmHxMkwagh+uyUOqJMkRYCIQCaWLAXjwSryVl/qtOG2WnbFV3qRRNNxkdSDxNj1ieX1Q==";org.bouncycastle.asn1.x509.Certificate cert1 = CertParseUtil.getCert(base64Code);// 证书的基本信息System.out.println("<<=============证书的基本信息===============>>");System.out.println("证书版本:" + CertParseUtil.getVersion(cert1));System.out.println("序列号:" + CertParseUtil.getSerialNumber(cert1));System.out.println("算法标识:" + CertParseUtil.getSignatureAlgorithm(cert1));System.out.println("颁发者:" + CertParseUtil.getDN(CertParseUtil.getIssuer(cert1), "CN"));System.out.println("开始时间:" + CertParseUtil.getStartDate(cert1));System.out.println("结束时间:" + CertParseUtil.getEndDate(cert1));System.out.println("主体名:" + CertParseUtil.getSubject(cert1));System.out.println("主体名2:" + CertParseUtil.getIssuer(cert1));String certname = CertParseUtil.getDN(CertParseUtil.getSubject(cert1), "CN");System.out.println("证书名称:" + certname);System.out.println("证书算法版本:" + CertParseUtil.getOnlyCode(cert1));
// System.out.println("企业/个人名称:"+certname.substring(0, certname.lastIndexOf("(")));
// System.out.println("唯一码:"+c1.getOnlyCode(cert1));System.out.println("PK:" + CertParseUtil.getPK(cert1));System.out.println("<<=============证书的基本信息===============>>");Extensions extensions = cert1.getTBSCertificate().getExtensions();byte[] extensionBytes = CertParseUtil.getExtensionBytes("1.2.156.10260.4.1.1", extensions);if (extensionBytes.length == 0) {extensionBytes = CertParseUtil.getExtensionBytes("1.2.156.10260.4.1.4", extensions);extensionBytes = CertParseUtil.getExtensionBytes("1.2.156.10260.4.1.5", extensions);}String s = new String(extensionBytes);System.out.println(s);}
}
base64证书转certificate工具类相关推荐
- Java(35):Java Base64编码和解码工具类
Java Base64编码和解码工具类 Base64Util工具类: package com.ciphergateway.utils; import java.io.UnsupportedEncodi ...
- java跳过_java跳过https证书直接请求工具类
/** * 过滤https协议 * @author edwin */ public class FiltratHttpsUtils { static HostnameVerifier hv = new ...
- rsa java ao_RSA加解密工具类
Java 实现 import java.security.KeyFactory; import java.security.KeyPair; import java.security.KeyPairG ...
- 各种各种的公共工具类
2019独角兽企业重金招聘Python工程师标准>>> 1.建立公共项目cloud-sdk 地址https://github.com/zhbxzc/cloud-sdk.git 序号 ...
- base64码 java_工具类:Java将图片变成base64码
一个可以将图片转成base64编码的工具类/** * Copyright (c) 2011-2017, 玛雅牛 (myaniu AT gmail dot com). * * Licensed unde ...
- Java中使用Base64进行编码解码的工具类-将验证码图片使用Base64编码并返回给前端
场景 前端使用Vue,验证码图片的src属性来自于后台SpringBoot接口. 后台验证码接口生成验证码图片并将其使用Base64进行编码. 前端就可以直接使用 data:image/png;bas ...
- Android开发之Base64与bitmap互转的工具类
老套路先看效果图: 如上图:分别是bitmap转base64和base64转bitmap 直接上代码.看工具类 package com.example.apidemo.util; /** Copyri ...
- ImageUtils.java:图片处理工具类[裁剪/图片水印/文字水印/缩放补白/Base64加密解密]
用到的jar包: commons-beanutils-1.8.0.jar commons-codec-1.10.jar package com.zhenzhigu.commons.util; im ...
- Java 开发中常用的 4 种加密方法。MD5加密工具类测试 base64加密工具类测试 SHA加密工具类测试 BCrypt加密工具类测试
一.工具类 1, md5加密工具类 2, base64加密工具类 3, Bcrypt工具类 二.加密测试 MD5加密测试 base64加密测试 SHA加密测试 BCrypt加密测试 一.工具类 1, ...
最新文章
- SpringBoot配置属性之MQ
- 安卓tinyalsa源码,可使用makefile直接编译
- 【TeeChart .NET教程】(七)使用函数
- 在Windows 64位操作系统安装Weblogic的注意事项
- 防止刷新重复post提交
- ARM9学习笔记之——SDRAM实验
- 算法笔记和上机实战训练指南(附下载)
- Axure 8.0破解版下载
- ViewStub使用
- 如何做决策?SWOT分析
- 5G WiFi频段介绍
- android build.prop 修改,修改android的build.prop文件真的能够提高android设备性能?!...
- 塔防游戏制作教程(二)
- 【翻译论文】A Progressive Morphological Filter for Removing Nonground Measurements From Airborne LIDAR Dat
- python输入年月日输出年月日_python时序分析
- Windows找回磁盘被病毒感染后隐藏的文件
- 关于H.265/HEVC视频压缩标准相较H.264/AVC节省50%左右的带宽方案的推荐
- 基于levy飞行改进的麻雀搜索算法-附代码
- 随机森林计算特征重要性_随机森林中计算特征重要性的3种方法
- 模型评价(AUC,ROC曲线,ACC, 敏感性, 特异性,精确度,召回率,PPV, NPV, F1)
热门文章
- input输入框禁止输入但可以选择
- jQuery实现网站换肤
- 梦幻西游卖号显示该服务器没有角色,《梦幻西游》第一神豪秦奋要卖号了,35个角色价值过亿现四折出售,是因为没钱了吗?...
- 人物专题片的创作思路
- 2021年北京高新技术企业认定条件要求,奖励30万元
- 别去冼牙了!惊人发現牙齿「再生朮」,韩國变态黑科技,烂牙变新牙!
- 游戏数据分析平台 Playcore 新功能一览
- 图像处理--机器学习
- java吉祥物duke图片_Duke是吉祥物?你不知道巅峰的Duke到底多可怕!网友:又是一打五...
- 【招聘】百度AI算法招聘专场