package chat.sms; import java.io.Closeable; import java.io.IOException; import java.security.KeyFactory; import java.security.NoSuchAlgorithmException; import java.security.PrivateKey; import java.security.spec.InvalidKeySpecException; import java.security.spec.PKCS8EncodedKeySpec; import java.util.Base64; import java.util.HashMap; import java.util.Map; import javax.crypto.Cipher; import org.apache.http.HttpEntity; import org.apache.http.client.ClientProtocolException; import org.apache.http.client.methods.CloseableHttpResponse; import org.apache.http.client.methods.HttpPost; import org.apache.http.entity.StringEntity; import org.apache.http.impl.client.CloseableHttpClient; import org.apache.http.impl.client.HttpClientBuilder; import org.apache.http.util.EntityUtils; import org.apache.log4j.Logger; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import cn.hutool.http.HttpRequest; public class OneClickLogin { private static Logger log = Logger.getLogger(OneClickLogin.class); private final String prikey = "MIICdwIBADANBgkqhkiG9w0BAQEFAASCAmEwggJdAgEAAoGBALFmv2SAZcnEUPaTNRBdOIL5Eg1e02Vj448AR4DnbMpEQMugM6zIqGik6Ckp43Jo9tXTsm6gvjcwQgYWd7U7FrsMpazH3d0ubtRiVPKxQpZKqfvGu3z6GC75LAy+qToCXecHAGU8eLOke116VrDKXjMkvTi72fhdb7gBQE2pukU1AgMBAAECgYAlRhtsuHWqoS8JwABkQdH/4uliGcx8/zHu9/YOJZH8Jb8fibeR1E9ePVfyXjTF8zv5zZMuH2QYIHGe6dWZJKMvrBNqOucnbdQ8dQMNuD+1Bg2q0zZH5EBa+Q3ISA9jYwoYTLz7sJC/n3IfkNtKQAqDIS8qjMZsmzfSSPhFi0J9AQJBAOogYuY+EPUUxh9stHraMguKWelidDk5dU1GPf+Nvi4+D+LUeqtTqVj/JHKV2CpWAlwfXpwVFiUWAMCoxj2phBUCQQDB+anXyEh4DB3HxMHs1a8P0JqF/G4HLVfRliNp2sJ3jNV9Ypp8F2QMnV7dFt2Lrdpgr8dipFLQkRboWRcj7mShAkEA6Klsfs+4/EQ7qqjVJazFxNAlD5eGVgOyfStLmzTZhIyqLsjmanGGPem256PfIBs+1xtZYpRV4F7gOpS+BDL8DQJAS8wMUzZ/IvHRHUPEZ5BkVPC1wQ+Pyxwryck6U13ZSa/tqI5EQaM+RDOmYwxRTAiGYeuuJNyDQ96+LdLKWQ8JoQJBAI9IJRs440IeEpMqfNZ0jRhKD3tZYXu2rt7fuuDTZmbGqJCWuVuTSveSSt01YZm1ij0aOwRKgIBmIOR3lBn9KP8="; public String mobileLogin(String content) throws Exception { String host = "https://api.verification.jpush.cn/v1/web/loginTokenVerify"; Map map = new HashMap(); map.put("loginToken", content); Map headers = new HashMap(); headers.put("Authorization","Basic ${base64_auth_string}"); headers.put("Content-Type", "application/json"); String result = HttpRequest.post(host).header("Authorization", "Basic Y2JlZWUwNWQ2MzA5OThjNjgxODQ2ZGZhOjU5ZDg4MTIzZjJlMjQzMDIxMTY5MTVhMw=="). header("Content-Type","application/json") .body(JSON.toJSONString(map)) .execute().body(); JSONObject jsonObject = JSON.parseObject(result); String cryptograph_phone = (String) jsonObject.get("phone"); String phone = decryptPhone(cryptograph_phone, prikey); return phone; } private String decryptPhone(String phone, String prikey) throws Exception { PKCS8EncodedKeySpec keySpec = new PKCS8EncodedKeySpec(Base64.getDecoder().decode(prikey)); PrivateKey privateKey = KeyFactory.getInstance("RSA").generatePrivate(keySpec); Cipher cipher=Cipher.getInstance("RSA"); cipher.init(Cipher.DECRYPT_MODE, privateKey); byte [] b = Base64.getDecoder().decode(phone); return new String(cipher.doFinal(b)); } public static void main(String[] args) throws Exception { // CloseableHttpResponse response = null; // CloseableHttpClient httpClient = null; // String responseContent = ""; // String JSONBody = "{\"loginToken\":\"STsid0000001542695429579Ob28vB7b0cYTI9w0GGZrv8ujUu05qZvw\",\"exID\":\"1234566\"}"; // try { // httpClient = HttpClientBuilder.create().build(); // HttpPost httpPost = new HttpPost("https://api.verification.jpush.cn/v1/web/loginTokenVerify"); // httpPost.addHeader("Content-Type", "application/json"); // httpPost.addHeader("Authorization", "Basic N2Q0MzFlNDJkZmE2YTZkNjkzYWMyZDA0OjVlOTg3YWM2ZDJlMDRkOTVhOWQ4ZjBkMQ=="); // httpPost.setEntity(new StringEntity(JSONBody)); // response = httpClient.execute(httpPost); // HttpEntity entity = response.getEntity(); // responseContent = EntityUtils.toString(entity, "UTF-8"); // response.close(); // httpClient.close(); // System.out.println(responseContent); // } catch (ClientProtocolException e) { // log.error(e); // } catch (IOException e) { // log.error(e); // } finally { // close(response, httpClient); // } // String host = "https://api.verification.jpush.cn/v1/web/loginTokenVerify"; // String appKey = "7d431e42dfa6a6d693ac2d04"; // String Secret = "5e987ac6d2e04d95a9d8f0d1"; // Map map = new HashMap(); // map.put("loginToken", "zI2eLaqa6gcMmxwF5DL6J69ShKkzEKHFAHxIkJBwx7uH1GY3WbBfbTWZKXbn3HFAotFh90wkgZHEfTtUe9s6qKufYGB4yn3Rv3bp1rGJ5vWuzx3dAruTVoFxu6+Vozw1xbOGr+7UfLs56ghsyWuyWv2RdrnMeJHZ5/0la21UW9N8Ha1brFP2wl/0HiAITKjlIezpxZfH+g1dx1CUVRC1zRC7s6p+uH60Z2tgVRcus2AdVxgdtkQ+O2OTZMkNGBLzYcw9CQ8vhrUvvFiVoirv90v00gdVEbtfublJlH5OCCvtTFe9w0cJNDB7dHK/LHmQownHQi+Tk6Fh6kN78FmMwXvvugnDGKr977ntg27yjlcfmGd/RiZ1vH26WcI8OCnj"); // //map.put("exID", "1234566"); // // Map headers = new HashMap(); // headers.put("Authorization","Basic ${base64_auth_string}"); // headers.put("Content-Type", "application/json; charset=UTF-8"); // //// String result = HttpRequest.post(host).header("Authorization", "Basic " + Base64.getUrlEncoder(). //// encodeToString((appKey + ":" + Secret).getBytes())). //// header("Content-Type","application/json") //// .body(JSON.toJSONString(map)) //// .execute().body(); // String result = HttpRequest.post(host).header("Authorization", "Basic Y2JlZWUwNWQ2MzA5OThjNjgxODQ2ZGZhOjU5ZDg4MTIzZjJlMjQzMDIxMTY5MTVhMw=="). // header("Content-Type","application/json") // .body(JSON.toJSONString(map)) // .execute().body(); // System.out.println(result); // JSONObject jsonObject = JSON.parseObject(result); // String cryptograph_phone = (String) jsonObject.get("phone"); // String phone = decryptPhone("TQHocUoyw5QCWXq+Mw8Q1x/jNDQAw8ol2Qb4dAoX/ljHP11NBErbL3iv+hMD7D4Jo12NRdp/j2F/H1Geq9xMnFH/OcBgsrIcwqGVgmKqyNtSAsXxT2OYgDQd2oySyw4zKyteQhuOHNhuF6u8oEEs+A6HtUiGvc3gijVZeBxE8zM=", prikey); // System.out.println(phone); } private static void close(Closeable... closeables) { if (closeables != null && closeables.length > 0) { try { for (Closeable closeable : closeables) { if (closeable != null) { closeable.close(); } } } catch (IOException e) { log.error(e); } } } }