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<String, Object> map = new HashMap<String, Object>();
|
map.put("loginToken", content);
|
|
Map<String, String> headers = new HashMap<String, String>();
|
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<String, Object> map = new HashMap<String, Object>();
|
// map.put("loginToken", "zI2eLaqa6gcMmxwF5DL6J69ShKkzEKHFAHxIkJBwx7uH1GY3WbBfbTWZKXbn3HFAotFh90wkgZHEfTtUe9s6qKufYGB4yn3Rv3bp1rGJ5vWuzx3dAruTVoFxu6+Vozw1xbOGr+7UfLs56ghsyWuyWv2RdrnMeJHZ5/0la21UW9N8Ha1brFP2wl/0HiAITKjlIezpxZfH+g1dx1CUVRC1zRC7s6p+uH60Z2tgVRcus2AdVxgdtkQ+O2OTZMkNGBLzYcw9CQ8vhrUvvFiVoirv90v00gdVEbtfublJlH5OCCvtTFe9w0cJNDB7dHK/LHmQownHQi+Tk6Fh6kN78FmMwXvvugnDGKr977ntg27yjlcfmGd/RiZ1vH26WcI8OCnj");
|
// //map.put("exID", "1234566");
|
//
|
// Map<String, String> headers = new HashMap<String, String>();
|
// 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);
|
}
|
}
|
}
|
|
}
|