Skip to content

Commit

Permalink
系统优化
Browse files Browse the repository at this point in the history
Signed-off-by: xxx <x@x.x>
  • Loading branch information
xxx committed Jan 4, 2018
1 parent fa26683 commit 8c5520e
Show file tree
Hide file tree
Showing 4 changed files with 21 additions and 15 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,12 @@

import lombok.*;
import org.apache.commons.codec.binary.Base64;
import org.apache.commons.lang3.CharSetUtils;

import javax.persistence.*;
import java.io.Serializable;
import java.nio.charset.Charset;
import java.nio.charset.StandardCharsets;
import java.util.Date;

/**
Expand Down Expand Up @@ -77,12 +80,12 @@ public String getLink() {
.append(SSR_LINK_SEPARATOR).append(protocol)
.append(SSR_LINK_SEPARATOR).append(method)
.append(SSR_LINK_SEPARATOR).append(obfs)
.append(SSR_LINK_SEPARATOR).append(Base64.encodeBase64URLSafeString(password.getBytes()))
.append(SSR_LINK_SEPARATOR).append(Base64.encodeBase64URLSafeString(password.getBytes(StandardCharsets.UTF_8)))
.append("/?obfsparam=")
.append("&protoparam=")
.append("&remarks=").append(Base64.encodeBase64URLSafeString(remarks.getBytes()))
.append("&group=").append(Base64.encodeBase64URLSafeString(group.getBytes()));
return "ssr://" + Base64.encodeBase64URLSafeString(link.toString().getBytes());
// .append("&protoparam=")
.append("&remarks=").append(Base64.encodeBase64URLSafeString(remarks.getBytes(StandardCharsets.UTF_8)))
.append("&group=").append(Base64.encodeBase64URLSafeString(group.getBytes(StandardCharsets.UTF_8)));
return "ssr://" + Base64.encodeBase64URLSafeString(link.toString().getBytes(StandardCharsets.UTF_8));
}

public String getLinkNotSafe() {
Expand All @@ -94,11 +97,11 @@ public String getLinkNotSafe() {
.append(SSR_LINK_SEPARATOR).append(protocol)
.append(SSR_LINK_SEPARATOR).append(method)
.append(SSR_LINK_SEPARATOR).append(obfs)
.append(SSR_LINK_SEPARATOR).append(Base64.encodeBase64URLSafeString(password.getBytes()))
.append(SSR_LINK_SEPARATOR).append(Base64.encodeBase64URLSafeString(password.getBytes(StandardCharsets.UTF_8)))
.append("/?obfsparam=")
.append("&protoparam=")
.append("&remarks=").append(Base64.encodeBase64URLSafeString(remarks.getBytes()))
.append("&group=").append(Base64.encodeBase64URLSafeString(group.getBytes()));
return "ssr://" + Base64.encodeBase64String(link.toString().getBytes()) + "\n";
// .append("&protoparam=")
.append("&remarks=").append(Base64.encodeBase64URLSafeString(remarks.getBytes(StandardCharsets.UTF_8)))
.append("&group=").append(Base64.encodeBase64URLSafeString(group.getBytes(StandardCharsets.UTF_8)));
return "ssr://" + Base64.encodeBase64String(link.toString().getBytes(StandardCharsets.UTF_8)) + "\n";
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,7 @@ public String getLink(boolean valid) {
link.append(entity.getLinkNotSafe());
}
}
return Base64.encodeBase64String(link.toString().getBytes());
return Base64.encodeBase64String(link.toString().getBytes(StandardCharsets.UTF_8));
}
return "";
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@
import java.net.InetSocketAddress;
import java.net.Socket;
import java.net.URL;
import java.nio.charset.StandardCharsets;
import java.util.Date;
import java.util.Set;

Expand Down Expand Up @@ -91,7 +92,7 @@ public ShadowSocksEntity getShadowSocks() {
protected ShadowSocksDetailsEntity parseLink(String link) {
// 分为 SSR 或 SS
if (StringUtils.isNotBlank(link) && StringUtils.startsWithIgnoreCase(link, "ssr")) {
String ssrInfoStr = new String(Base64.decodeBase64(StringUtils.remove(link, "ssr://")));
String ssrInfoStr = new String(Base64.decodeBase64(StringUtils.remove(link, "ssr://").getBytes(StandardCharsets.UTF_8)), StandardCharsets.UTF_8);
try {
// 按照 /? 拆分,前半段为 主要配置信息,后半段为 URL 参数
String[] strs = StringUtils.split(ssrInfoStr, "/?");
Expand All @@ -101,7 +102,7 @@ protected ShadowSocksDetailsEntity parseLink(String link) {

String[] ssInfo = StringUtils.split(strs[0], ":", 6);

ShadowSocksDetailsEntity entity = new ShadowSocksDetailsEntity(ssInfo[0].trim(), Integer.parseInt(ssInfo[1].trim()), new String(Base64.decodeBase64(ssInfo[5].trim())), ssInfo[3].trim(), ssInfo[2].trim(), ssInfo[4].trim());
ShadowSocksDetailsEntity entity = new ShadowSocksDetailsEntity(ssInfo[0].trim(), Integer.parseInt(ssInfo[1].trim()), new String(Base64.decodeBase64(ssInfo[5].trim().getBytes(StandardCharsets.UTF_8)), StandardCharsets.UTF_8), ssInfo[3].trim(), ssInfo[2].trim(), ssInfo[4].trim());

/*String suffix_base64 = strs[1];
byte[] _remarks = Base64.decodeBase64(StringUtils.substringBetween(suffix_base64, "remarks=", "&"));
Expand All @@ -117,7 +118,7 @@ protected ShadowSocksDetailsEntity parseLink(String link) {
}
} else if (StringUtils.isNotBlank(link) && StringUtils.startsWithIgnoreCase(link, "ss")) {
// aes-256-cfb:60948959@jp01.fss.fun:15785
String ssInfoStr = new String(Base64.decodeBase64(StringUtils.remove(link, "ss://")));
String ssInfoStr = new String(Base64.decodeBase64(StringUtils.remove(link, "ss://").getBytes(StandardCharsets.UTF_8)), StandardCharsets.UTF_8);
String[] strs = StringUtils.split(ssInfoStr, "@");
String[] ssInfo1 = StringUtils.split(strs[0], ":");
String[] ssInfo2 = StringUtils.split(strs[1], ":");
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,8 @@
import org.apache.commons.codec.binary.Base64;
import org.junit.Test;

import java.nio.charset.StandardCharsets;


@Slf4j
public class CodeTest {
Expand All @@ -15,7 +17,7 @@ public void test() {
String str1 = "c3NyOi8vanAwMS5mc3MuZnVuOjE0MTgxOm9yaWdpbjphZXMtMjU2LWNmYjpwbGFpbjpNemMyTlRZd01UYy8_b2Jmc3BhcmFtPSZwcm90b3BhcmFtPSZyZW1hcmtzPVJuSmxaVk5UTFVWaGMza2dkRzhnVlhObCZncm91cD1VMmhoWkc5M1UyOWphM010VTJoaGNtVQpzc3I6Ly9qcDAyLmZzcy5mdW46MTE5MzE6b3JpZ2luOmFlcy0yNTYtY2ZiOnBsYWluOk56WTNNVFl6TWpjLz9vYmZzcGFyYW09JnByb3RvcGFyYW09JnJlbWFya3M9Um5KbFpWTlRMVVZoYzNrZ2RHOGdWWE5sJmdyb3VwPVUyaGhaRzkzVTI5amEzTXRVMmhoY21VCnNzcjovL3VzMDEuZnNzLmZ1bjoxODgzMzpvcmlnaW46YWVzLTI1Ni1jZmI6cGxhaW46TkRneE9EQTNOamcvP29iZnNwYXJhbT0mcHJvdG9wYXJhbT0mcmVtYXJrcz1SbkpsWlZOVExVVmhjM2tnZEc4Z1ZYTmwmZ3JvdXA9VTJoaFpHOTNVMjlqYTNNdFUyaGhjbVUKc3NyOi8vanAwMy5mc3MuZnVuOjE5NDExOm9yaWdpbjphZXMtMjU2LWNmYjpwbGFpbjpOamc0TnprMk56TS8_b2Jmc3BhcmFtPSZwcm90b3BhcmFtPSZyZW1hcmtzPVJuSmxaVk5UTFVWaGMza2dkRzhnVlhObCZncm91cD1VMmhoWkc5M1UyOWphM010VTJoaGNtVQpzc3I6Ly91czAyLmZzcy5mdW46MTYwNTk6b3JpZ2luOmFlcy0yNTYtY2ZiOnBsYWluOk1EVXhPRGswTXpNLz9vYmZzcGFyYW09JnByb3RvcGFyYW09JnJlbWFya3M9Um5KbFpWTlRMVVZoYzNrZ2RHOGdWWE5sJmdyb3VwPVUyaGhaRzkzVTI5amEzTXRVMmhoY21VCnNzcjovL3VzMDMuZnNzLmZ1bjoxMDEzOTpvcmlnaW46YWVzLTI1Ni1jZmI6cGxhaW46TnprNE1UVTNOREkvP29iZnNwYXJhbT0mcHJvdG9wYXJhbT0mcmVtYXJrcz1SbkpsWlZOVExVVmhjM2tnZEc4Z1ZYTmwmZ3JvdXA9VTJoaFpHOTNVMjlqYTNNdFUyaGhjbVUKc3NyOi8vYS5pc3hhLmJpZDoxNjE1NzpvcmlnaW46YWVzLTI1Ni1jZmI6cGxhaW46TmpZME1UTTFNekkvP29iZnNwYXJhbT0mcHJvdG9wYXJhbT0mcmVtYXJrcz1hVk5vWVdSdmR3Jmdyb3VwPVUyaGhaRzkzVTI5amEzTXRVMmhoY21VCnNzcjovL2EuaXN4Yi5iaWQ6MTExOTg6b3JpZ2luOmFlcy0yNTYtY2ZiOnBsYWluOk1EWXhNamt5TXpNLz9vYmZzcGFyYW09JnByb3RvcGFyYW09JnJlbWFya3M9YVZOb1lXUnZkdyZncm91cD1VMmhoWkc5M1UyOWphM010VTJoaGNtVQpzc3I6Ly9jLmlzeGEuYmlkOjE1MDg4Om9yaWdpbjphZXMtMjU2LWNmYjpwbGFpbjpNREl6TmpFNU9UWS8_b2Jmc3BhcmFtPSZwcm90b3BhcmFtPSZyZW1hcmtzPWFWTm9ZV1J2ZHcmZ3JvdXA9VTJoaFpHOTNVMjlqYTNNdFUyaGhjbVUKc3NyOi8vYS5pc3hjLmJpZDoxMzczMTpvcmlnaW46YWVzLTI1Ni1jZmI6cGxhaW46TURVeU1UZzFNamsvP29iZnNwYXJhbT0mcHJvdG9wYXJhbT0mcmVtYXJrcz1hVk5vWVdSdmR3Jmdyb3VwPVUyaGhaRzkzVTI5amEzTXRVMmhoY21VCnNzcjovL2EuaXN4Yy5iaWQ6MTM3MzE6b3JpZ2luOmFlcy0yNTYtY2ZiOnBsYWluOk1EVXlNVGcxTWprLz9vYmZzcGFyYW09JnByb3RvcGFyYW09JnJlbWFya3M9YVZOb1lXUnZkdyZncm91cD1VMmhoWkc5M1UyOWphM010VTJoaGNtVQpzc3I6Ly9iLmlzeGMuYmlkOjEyMTA3Om9yaWdpbjphZXMtMjU2LWNmYjpwbGFpbjpORGN3TlRFNE16RS8_b2Jmc3BhcmFtPSZwcm90b3BhcmFtPSZyZW1hcmtzPWFWTm9ZV1J2ZHcmZ3JvdXA9VTJoaFpHOTNVMjlqYTNNdFUyaGhjbVUKc3NyOi8vYi5pc3hhLmJpZDoxODA3MzpvcmlnaW46YWVzLTI1Ni1jZmI6cGxhaW46TWpnME5ESTNPVEUvP29iZnNwYXJhbT0mcHJvdG9wYXJhbT0mcmVtYXJrcz1hVk5vWVdSdmR3Jmdyb3VwPVUyaGhaRzkzVTI5amEzTXRVMmhoY21VCnNzcjovL2MuaXN4Yy5iaWQ6MTU5Mjc6b3JpZ2luOmFlcy0yNTYtY2ZiOnBsYWluOk9Ua3pOVGd4T1RNLz9vYmZzcGFyYW09JnByb3RvcGFyYW09JnJlbWFya3M9YVZOb1lXUnZkdyZncm91cD1VMmhoWkc5M1UyOWphM010VTJoaGNtVQpzc3I6Ly9iLmlzeGIuYmlkOjEzNTgzOm9yaWdpbjphZXMtMjU2LWNmYjpwbGFpbjpOakkyTVRBMU16VS8_b2Jmc3BhcmFtPSZwcm90b3BhcmFtPSZyZW1hcmtzPWFWTm9ZV1J2ZHcmZ3JvdXA9VTJoaFpHOTNVMjlqYTNNdFUyaGhjbVUKc3NyOi8vYi5pc3hhLmJpZDoxODA3MzpvcmlnaW46YWVzLTI1Ni1jZmI6cGxhaW46TWpnME5ESTNPVEUvP29iZnNwYXJhbT0mcHJvdG9wYXJhbT0mcmVtYXJrcz1hVk5vWVdSdmR3Jmdyb3VwPVUyaGhaRzkzVTI5amEzTXRVMmhoY21VCnNzcjovL2MuaXN4Yi5iaWQ6MTk4NDA6b3JpZ2luOmFlcy0yNTYtY2ZiOnBsYWluOk1UQTFOemMyTnpZLz9vYmZzcGFyYW09JnByb3RvcGFyYW09JnJlbWFya3M9YVZOb1lXUnZkdyZncm91cD1VMmhoWkc5M1UyOWphM010VTJoaGNtVQpzc3I6Ly9jLmlzeGIuYmlkOjE5ODQwOm9yaWdpbjphZXMtMjU2LWNmYjpwbGFpbjpNVEExTnpjMk56WS8_b2Jmc3BhcmFtPSZwcm90b3BhcmFtPSZyZW1hcmtzPWFWTm9ZV1J2ZHcmZ3JvdXA9VTJoaFpHOTNVMjlqYTNNdFUyaGhjbVUK";


log.debug("{}", new String(Base64.decodeBase64(str1)));
log.debug("{}", new String(Base64.decodeBase64(str1.getBytes(StandardCharsets.UTF_8)), StandardCharsets.UTF_8));
// log.debug("{}", new String(Base64.getDecoder().decode(str2)));
//log.debug("{}", new String(Base64.getDecoder().decode(str3)));
//log.debug("{}", new String(Base64.getDecoder().decode(str4)));
Expand Down

0 comments on commit 8c5520e

Please sign in to comment.