需引入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工具类相关推荐

  1. Java(35):Java Base64编码和解码工具类

    Java Base64编码和解码工具类 Base64Util工具类: package com.ciphergateway.utils; import java.io.UnsupportedEncodi ...

  2. java跳过_java跳过https证书直接请求工具类

    /** * 过滤https协议 * @author edwin */ public class FiltratHttpsUtils { static HostnameVerifier hv = new ...

  3. rsa java ao_RSA加解密工具类

    Java 实现 import java.security.KeyFactory; import java.security.KeyPair; import java.security.KeyPairG ...

  4. 各种各种的公共工具类

    2019独角兽企业重金招聘Python工程师标准>>> 1.建立公共项目cloud-sdk 地址https://github.com/zhbxzc/cloud-sdk.git 序号 ...

  5. base64码 java_工具类:Java将图片变成base64码

    一个可以将图片转成base64编码的工具类/** * Copyright (c) 2011-2017, 玛雅牛 (myaniu AT gmail dot com). * * Licensed unde ...

  6. Java中使用Base64进行编码解码的工具类-将验证码图片使用Base64编码并返回给前端

    场景 前端使用Vue,验证码图片的src属性来自于后台SpringBoot接口. 后台验证码接口生成验证码图片并将其使用Base64进行编码. 前端就可以直接使用 data:image/png;bas ...

  7. Android开发之Base64与bitmap互转的工具类

    老套路先看效果图: 如上图:分别是bitmap转base64和base64转bitmap 直接上代码.看工具类 package com.example.apidemo.util; /** Copyri ...

  8. ImageUtils.java:图片处理工具类[裁剪/图片水印/文字水印/缩放补白/Base64加密解密]

    用到的jar包: commons-beanutils-1.8.0.jar commons-codec-1.10.jar package com.zhenzhigu.commons.util;   im ...

  9. Java 开发中常用的 4 种加密方法。MD5加密工具类测试 base64加密工具类测试 SHA加密工具类测试 BCrypt加密工具类测试

    一.工具类 1, md5加密工具类 2, base64加密工具类 3, Bcrypt工具类 二.加密测试 MD5加密测试 base64加密测试 SHA加密测试 BCrypt加密测试 一.工具类 1, ...

最新文章

  1. SpringBoot配置属性之MQ
  2. 安卓tinyalsa源码,可使用makefile直接编译
  3. 【TeeChart .NET教程】(七)使用函数
  4. 在Windows 64位操作系统安装Weblogic的注意事项
  5. 防止刷新重复post提交
  6. ARM9学习笔记之——SDRAM实验
  7. 算法笔记和上机实战训练指南(附下载)
  8. Axure 8.0破解版下载
  9. ViewStub使用
  10. 如何做决策?SWOT分析
  11. 5G WiFi频段介绍
  12. android build.prop 修改,修改android的build.prop文件真的能够提高android设备性能?!...
  13. 塔防游戏制作教程(二)
  14. 【翻译论文】A Progressive Morphological Filter for Removing Nonground Measurements From Airborne LIDAR Dat
  15. python输入年月日输出年月日_python时序分析
  16. Windows找回磁盘被病毒感染后隐藏的文件
  17. 关于H.265/HEVC视频压缩标准相较H.264/AVC节省50%左右的带宽方案的推荐
  18. 基于levy飞行改进的麻雀搜索算法-附代码
  19. 随机森林计算特征重要性_随机森林中计算特征重要性的3种方法
  20. 模型评价(AUC,ROC曲线,ACC, 敏感性, 特异性,精确度,召回率,PPV, NPV, F1)

热门文章

  1. input输入框禁止输入但可以选择
  2. jQuery实现网站换肤
  3. 梦幻西游卖号显示该服务器没有角色,《梦幻西游》第一神豪秦奋要卖号了,35个角色价值过亿现四折出售,是因为没钱了吗?...
  4. 人物专题片的创作思路
  5. 2021年北京高新技术企业认定条件要求,奖励30万元
  6. 别去冼牙了!惊人发現牙齿「再生朮」,韩國变态黑科技,烂牙变新牙!
  7. 游戏数据分析平台 Playcore 新功能一览
  8. 图像处理--机器学习
  9. java吉祥物duke图片_Duke是吉祥物?你不知道巅峰的Duke到底多可怕!网友:又是一打五...
  10. 【招聘】百度AI算法招聘专场