问题:使用subprocess.Popen启动进程时,启动了两条进程,如何解决?

解决:添加executable='bash'

方法:

cmd_date = 'python test_01.py'
process = subprocess.Popen(cmd_date, stdout=subprocess.PIPE, stderr=subprocess.PIPE, shell=True, executable='bash')
stdout, stderr = process.communicate()
print(stdout, stderr, process.pid)

阅读全文

问题:windows下如何自动安装mysql8,而不需要配置环境?

解决:使用官方的安装程序

方法:

下载地址:
https://dev.mysql.com/downloads/installer/
下载MySQL Installer 8.0.27,这是安装程序,点击就能安装
如果下载MySQL Community Server 8.0.27则需要手动配置文件,太麻烦,不推荐
建议下载mysql-installer-community-8.0.27.1.msi
下载好后,双击,点击只安装server,即第二个选项

问题:java提供的sm2公钥无法在python中使用

解决:因为java和python使用的加密方法有差

方法:

package com.bocsoft.security;
import com.bocsoft.decrypt.Util;
import org.bouncycastle.asn1.*;
import org.bouncycastle.asn1.x509.SubjectPublicKeyInfo;
import static com.bocsoft.decrypt.Util.getHexString;

public class translate {

    public static void main(String[] args) throws Exception {
        String private_key = "308193020100301306072a8648ce3d020106082a811ccf5501822d0479307702010104205931b7fa3a8ec4e974d48e84b8a64d931c9e7bad295dafe57940573d46481c44a00a06082a811ccf5501822da14403420004798718d3c2152a61ef18ff58adfb83e6694f84ea6c58ce4cfa83f79bb7ff4893d5e6050242cca375a6585f265bd862b448c90af4c61d67620900526f3ebffcaf";
        String public_key = "04251ed256cf8ac425443cc444cda5aafbe8aa22a5c5af1f11b2eecff6217bb3299e554c202f5253eee538ff1576bdba729e9a4d338508ba421b6c6330dca2711c";
        byte[] sm2_private = privateKey(Util.hexStringToBytes(private_key));
        System.out.println("私钥为:"+ Util.encodeHexString(sm2_private));

        byte[] publicKey = publicKey(Util.hexStringToBytes(public_key));
        System.out.println("公钥为: " + Util.encodeHexString(publicKey));
    }

阅读全文

问题:SM2加解签如何使用?

方法:

import base64
import binascii
from gmssl import sm2, func
#16进制的公钥和私钥
private_key = '00B9AB0B828FF68872F21A837FC303668428DEA11DCD1B24429D0C99E24EED83D5'
public_key = 'B9C9A6E04E9C91F7BA880429273747D7EF5DDEB0BB2FF6317EB00BEF331A83081A6994B8993F3F5D6EADDDB81872266C87C018FB4162F5AF347B483E24620207'
sm2_crypt = sm2.CryptSM2(
    public_key=public_key, private_key=private_key)

阅读全文

问题: okhttp的post传递参数如何写?

方法:

Post请示,传递json格式数据

public static final MediaType JSON = MediaType.parse("application/json; charset=utf-8");
OkHttpClient client = new OkHttpClient();
String post(String url, String json) throws IOException {
     RequestBody body = RequestBody.create(JSON, json);
      Request request = new Request.Builder()
      .url(url)
      .post(body)
      .build();
//同步
      Response response = client.newCall(request).execute();
    f (response.isSuccessful()) {
        return response.body().string();
    } else {
        throw new IOException("Unexpected code " + response);
    }
}

阅读全文