import java.security.*;
import java.security.spec.*;
import javax.crypto.*;
public static HashMap genarateRSAKeyPair() throws NoSuchAlgorithmException {
    PublicKey publicKey = null;
    PrivateKey privateKey = null;

    SecureRandom secureRandom = new SecureRandom();
    KeyPairGenerator keyPairGenerator = KeyPairGenerator.getInstance("RSA");
    keyPairGenerator.initialize(512, secureRandom);

    KeyPair keyPair = keyPairGenerator.genKeyPair();
    publicKey = keyPair.getPublic();
    privateKey = keyPair.getPrivate();

    HashMap map = new HashMap();
    map.put("publickey", publicKey);
    map.put("privatekey", privateKey);
    return map;
}
public static byte[] rsaEncrypt(PublicKey publicKey, byte[] bPlain) throws NoSuchPaddingException, NoSuchAlgorithmException, IllegalBlockSizeException, BadPaddingException, InvalidKeyException {
    Cipher cipher = Cipher.getInstance("RSA");

    // 공개키 이용 암호화
    cipher.init(Cipher.ENCRYPT_MODE, publicKey);
    byte[] bCipher = cipher.doFinal(bPlain);
    return bCipher;
}
public static byte[] rsaDecrypt(PrivateKey privateKey, byte[] bEncyptedData) throws NoSuchPaddingException, NoSuchAlgorithmException, IllegalBlockSizeException, BadPaddingException, InvalidKeyException {
    Cipher cipher = Cipher.getInstance("RSA");

    // 개인키 이용 복호화
    cipher.init(Cipher.DECRYPT_MODE, privateKey);
    byte[] bPlain = cipher.doFinal(bEncyptedData);
    return bPlain;
}
public static byte[] rsaSign(PrivateKey privateKey, byte[] bPlain) throws NoSuchPaddingException, NoSuchAlgorithmException, IllegalBlockSizeException, BadPaddingException, InvalidKeyException, SignatureException {
    Cipher cipher = Cipher.getInstance("RSA");

    // sign
    Signature rsa = Signature.getInstance("SHA256withRSA");
    rsa.initSign(privateKey);
    rsa.update(SHA256(bPlain));
    byte[] ds = rsa.sign();
    return ds;
}
public static boolean rsaSignVerify(PublicKey publicKey, byte[] bPlain, byte[] bSign) throws NoSuchPaddingException, NoSuchAlgorithmException, IllegalBlockSizeException, BadPaddingException, InvalidKeyException, SignatureException {
    Cipher cipher = Cipher.getInstance("RSA");

    Signature rsa = Signature.getInstance("SHA256withRSA");
    rsa.initVerify(publicKey);
    rsa.update(SHA256(bPlain));
    boolean rtnVal = rsa.verify(bSign);
    return rtnVal;
}
HashMap key = UtilClass.genarateRSAKeyPair();
String plain = "000001" + System.lineSeparator() +
        "192.168.0.8" + System.lineSeparator() +
        "90-78-41-57-56-2F" + System.lineSeparator() +
        "5" + System.lineSeparator() +
        "20231231" + System.lineSeparator();
byte[] baSign = UtilClass.rsaSign((PrivateKey) key.get("privatekey"), plain.getBytes());
String license = plain +  UtilClass.Base64Encode(baSign);

String ip =UtilClass.getAddress1();
String mac = UtilClass.getMacAddress1();

String[] data = license.split(System.lineSeparator());


boolean bResult = UtilClass.rsaSignVerify((PublicKey) key.get("publickey"), plain.getBytes(), UtilClass.Base64Decode(data[5]));

 

https://link.coupang.com/a/NeJdE

 

질레트 퓨전 프로쉴드 옐로우 면도기 + 여분날

COUPANG

www.coupang.com

 

이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다.

AND

2023년에 적용되는 2022년도 엔지니어링 임금 실태 조사 문서입니다

소프트웨어 개발 평균 임금표입니다

견적 산출시 참고하세요

2022년도 엔지니어링업체 임금실태조사 결과공표문.pdf
0.07MB

https://link.coupang.com/a/NeCq6

 

엠도씨 화이트닝 톤업 크림 50ml

COUPANG

www.coupang.com

이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다.

AND

참고 사이트

https://butteryoon.github.io/dev/2021/04/03/janus_webrtc_install.html

https://ourcodeworld.com/articles/read/1197/how-to-install-janus-gateway-in-ubuntu-server-18-04

https://janus.conf.meetecho.com/docs/videoroom.html

https://github.com/meetecho/janus-gateway

 

설치법

apt-get -y install libmicrohttpd-dev libjansson-dev libssl-dev libsrtp-dev libsofia-sip-ua-dev libglib2.0-dev libopus-dev libogg-dev libcurl4-openssl-dev liblua5.3-dev libconfig-dev pkg-config gengetopt libtool automake meson

 

pip3 install --user meson

 

wget https://github.com/cisco/libsrtp/archive/v2.2.0.tar.gz

tar xfv v2.2.0.tar.gz

cd libsrtp-2.2.0

./configure --prefix=/usr --enable-openssl

make shared_library && sudo make install

 

git clone https://gitlab.freedesktop.org/libnice/libnice

cd libnice

meson --prefix=/usr build && ninja -C build && sudo ninja -C build install

 

git clone https://github.com/sctplab/usrsctp

cd usrsctp

./bootstrap

./configure --prefix=/usr && make && sudo make install

 

git clone https://libwebsockets.org/repo/libwebsockets

cd libwebsockets/

mkdir build

cd build

cmake -DLWS_MAX_SMP=1 -DCMAKE_INSTALL_PREFIX:PATH=/usr -DCMAKE_C_FLAGS="-fpic" ..

make && sudo make install

 

git clone https://github.com/eclipse/paho.mqtt.c.git

cd paho.mqtt.c

sudo prefix=/usr make install

 

git clone https://github.com/alanxz/rabbitmq-c

cd rabbitmq-c

git submodule init

git submodule update

mkdir build && cd build

cmake -DCMAKE_INSTALL_PREFIX=/usr ..

make && sudo make install

 

git clone https://github.com/meetecho/janus-gateway.git

cd janus-gateway/

sh autogen.sh

sudo ./configure --prefix=/opt/janus

sudo make

sudo make install

sudo make configs

 

sudo ufw allow 5000:65535/udp

sudo ufw allow 8188/tcp

sudo ufw allow 8089/tcp

sudo ufw allow 7889/tcp

sudo ufw allow 7089/tcp

 

수정파일

/opt/janus/etc/janus/janus.jcfg

187         cert_pem = "/home/.../ssl/private.pem"

189         cert_pwd = ..."

274         stun_server = "stun.l.google.com"

275         stun_port = 19302

276         nice_debug = false

 

/opt/janus/etc/janus/janus.transport.http.jcfg

18         https = true

19         secure_port = 8089

44         admin_https = true

45         admin_secure_port = 7889

70         cert_pem = "/home/.../ssl/public.pem"

71         cert_key = "/home/.../ssl/private.pem"

72         cert_pwd = "..."

 

실행

/opt/janus/bin/janus -F /opt/janus/etc/janus (-b 백그라운드 실행)

 

실행 시 undefined symbol: srtp_crypto_policy_set_aes_gcm_256_16_auth 에러 발생하면

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/lib

 

 

https://link.coupang.com/a/NewYz

 

바버501 쉐이빙 부스터 면도 밤 레드

COUPANG

www.coupang.com

이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다.

AND

강혁 이력서

이력서 2022. 12. 5. 23:35

개인프로파일_강혁_new.pdf
0.31MB

https://link.coupang.com/a/Nd8n1

 

 

세컨에디션 남성용 피렌체 울라이크 인생 코트

COUPANG

www.coupang.com

이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다

AND

포인트카드 전체 소스를 아래 블럭체인 주소(이더리움, 비트코인)로 0.5 ETH 또는 0.035BTC  이상을 후원해 주시면 이메일주소로 전체소스를 보내드립니다

소스 받을 이메일주소, 연락처, 후원자 블록체인 주소 및 정보를 아래 메일주소로 보내주시면 전체 소스를

보내드리겠습니다 (간단한 보안서약 서명 날인후)

 

이더리움 보내실 주소 :  0x7Db7b9c9b7c45833d2B9B10B2dee79d4023bDf00 (0.5 ETH 이상)

비트코인 보내실 주소 : 3JKLmZMRR9HYS6x9DqHoVRBHcxV9VYxPF8 (0.035 BTC 이상)

 

 

소스 요청 메일 보내기

 

소스 설명

0. 안드로이드 앱으로 구성

1. 자바 스프링 으로 구성

2. 카드/휴대폰 3종 결제 사이트 연동 소스 포함

3. 다수의 포인트카드 기능 소스등 포함

4. DB : mariadb

* 프로그래밍 공부에 많은 참고가 되는 소스가 포함되어 있습니다

AND