code: public static String sign(String content, String algorithm, String privateKey, String charset)
              throws NoSuchAlgorithmException, InvalidKeySpecException, InvalidKeyException, SignatureException,
              UnsupportedEncodingException {
          Signature signTool = Signature.getInstance(algorithm);
          PrivateKey key = commonGetPrivatekeyByText(privateKey);
          signTool.initSign(key);
          if (StringUtils.isEmpty(charset)) {
              signTool.update(content.getBytes());
          } else {
              signTool.update(content.getBytes(charset));
          }
          byte[] signBytes = signTool.sign();
          return Base64.byteArrayToAltBase64(signBytes);
      }
docs: 签名
  @param content 待签名内容
  @param algorithm 签名算法
  @param privateKey 私钥
  @param charset 签名内容为中文时，你可能需要指定编码
  @return 签名(String)
  @throws NoSuchAlgorithmException 签名算法异常
  @throws InvalidKeySpecException 密钥格式不正确
  @throws InvalidKeyException 密钥异常
  @throws SignatureException 签名异常
  @throws UnsupportedEncodingException 可能你指定的编码不能正确读取你要签名的内容