Mit Bearbeitung unterschreiben Vielleicht kann es zum Erstellen von IDEs verwendet werden (obwohl Leute, die IDEs erstellen, es schaffen können, ohne es anzusehen ...) library Bitte installieren Sie ZipSigner und Spongy Castle import
import java.security.KeyStore;
import java.io.*;
import android.os.Environment;
import javax.crypto.SecretKey;
import javax.crypto.KeyGenerator;
import kellinwood.security.zipsigner.ZipSigner;
import java.io.InputStream;
import kellinwood.security.zipsigner.optional.CustomKeySigner;
import org.spongycastle.jce.provider.BouncyCastleProvider;
import java.net.*;
Bei Verarbeitung
if (!hasPermission("android.permission.WRITE_EXTERNAL_STORAGE"))requestPermission("android.permission.WRITE_EXTERNAL_STORAGE", "initLocation");
Kann mit gemacht werden Wenn es sich um Java handelt, fügen Sie bitte WRITE_EXTERNAL_STORAGE ohne Erlaubnis hinzu
KeyStore ks;
void createKey(String keyName,String keyPassword,String Alias,String AliasPassword){
try{
String directory=Environment.getExternalStorageDirectory()+"/"+keyName+"."+KeyStore.getDefaultType();
ks = KeyStore.getInstance(KeyStore.getDefaultType());
ks.load(null, keyPassword.toCharArray());
KeyGenerator keyGen = KeyGenerator.getInstance("AES");
keyGen.init(128);
SecretKey mySecretKey=keyGen.generateKey();
KeyStore.SecretKeyEntry skEntry = new KeyStore.SecretKeyEntry(mySecretKey);
ks.setEntry(Alias, skEntry, new KeyStore.PasswordProtection(AliasPassword.toCharArray()));
File file=new File(directory);
FileOutputStream fos = new FileOutputStream(file);
ks.store(fos, keyPassword.toCharArray());
}catch(Exception e){
e.printStackTrace();
}
}
Hinausgehen
void sign(String keystore,String keystorePassword,String keyAlias,String StringkeyAliasPassword,String inFilename,String outputFilename){
try {
ZipSigner signer = new ZipSigner();
CustomKeySigner.signZip(signer, keystore, keystorePassword.toCharArray(), keyAlias, keyAliasPassword.toCharArray(), "SHA1WITHRSA", inFilename, outputFilename);
}catch (Exception e) {
e.printStackTrace();
}
}
Hinausgehen
Es hat viel Zeit gekostet, weil es auf Japanisch nur wenige Erklärungen gab, aber die Arbeit selbst war einfach.
Recommended Posts