SenseID Private Cloud
1.8.0, 日本語, 1v1
1.8.0, 日本語, 1v1
  • イントロダクション
  • リリースノート
  • インストールマニュアル
    • 改訂履歴
    • 1 システム環境設定の要件
    • 2 UDID
    • 3 ライセンスアクティベーション
    • 4 サービスの展開方法
    • 5 SenseIDの展開に関する FAQ
  • 運用マニュアル
    • 改訂履歴
    • 1 ライセンスファイルの更新と変更
    • 2 写真と動画の暗号化
    • 3 写真と動画の規格
    • 4 アップデート
    • 5 エラーコード一覧
  • APIマニュアル
    • 改訂履歴
    • 1 顔の比較 (ステートレス)
      • 1.1 /identity/image_verification/stateless
      • 1.2 /identity/multiface_image_omni_verification/stateless
      • 1.3 /identity/liveness_image_verification/stateless
      • 1.4 /identity/silent_image_verification/stateless
    • 2 写真品質チェック
      • 2.1 /quality/face/stateless
    • 3 なりすまし防止
      • 3.1 /liveness/silent_detection/stateless
Powered by GitBook
On this page
  • 2.1 暗号化キーの設定
  • 2.2 暗号化方法

Was this helpful?

Export as PDF
  1. 運用マニュアル

2 写真と動画の暗号化

SenseIDのAPI機能を使用する為の写真と動画暗号化方法について記載しています。

2.1 暗号化キーの設定

ユーザーがアップロードした個人データ(写真と動画)は、暗号化する必要があります。暗号化アルゴリズムはAES-256-GCMが使用されています。 暗号化に必要なキーおよびIVは、デフォルトの設定では以下のとおりです。

PARAM_DECRYPT_KEY = dcbbad6765e14139a07d34b92292a672
PARAM_DECRYPT_IV = df25d188a061

変更する場合、環境変数PARAM_DECRYPT_KEYおよびPARAM_DECRYPT_IVを更新してください。キーは32文字で、IVは12文字です。

$ cd 1v1-private-cloud-v1.8/
$ vi .env

2.2 暗号化方法

  1. 人物の写真ファイルまたは動画ファイルを読み取ります。

  2. AES-256-GCMでデータを暗号化します。

  3. Base64で上記の結果を暗号化します。

import javax.crypto.Cipher;
import javax.crypto.spec.GCMParameterSpec;
import javax.crypto.spec.SecretKeySpec;
import java.nio.charset.Charset;
import java.util.Base64;


public class AESCipher {
    private String key;
    private String iv;

    public AESCipher(String key, String iv) {
        this.key = key;
        this.iv = iv;
    }

    String encrypt(byte[] data) throws Exception{
        SecretKeySpec keySpec = new SecretKeySpec(key.getBytes(Charset.forName("UTF-8")), "AES");
        Cipher cipher = Cipher.getInstance("AES/GCM/NoPadding");
        cipher.init(Cipher.ENCRYPT_MODE, keySpec, new GCMParameterSpec(128, iv.getBytes(Charset.forName("UTF-8"))));
        byte[] result = cipher.doFinal(data);
        return Base64.getEncoder().encodeToString(result);
    }

    byte[] decrypt(String data) throws Exception {
        SecretKeySpec keySpec = new SecretKeySpec(key.getBytes(Charset.forName("UTF-8")), "AES");
        Cipher cipher = Cipher.getInstance("AES/GCM/NoPadding");
        cipher.init(Cipher.DECRYPT_MODE, keySpec, new GCMParameterSpec(128, iv.getBytes(Charset.forName("UTF-8"))));
        byte[] result = cipher.doFinal(Base64.getDecoder().decode(data));
        return result;
    }

    public static void main(String[] args) throws Exception{
        String key = "dcbbad6765e14139a07d34b92292a672"; //key 32 bits
        String iv = "df25d188a061"; // iv 12 bits
        String data = "hello world";

        AESCipher cipher = new AESCipher(key, iv);
        String encryptedData = cipher.encrypt(data.getBytes());
        System.out.println("encrypted data: " + encryptedData);

        String decryptedData = new String(cipher.decrypt(encryptedData));
        System.out.println("decrypted data: " + decryptedData);
    }
}
Previous1 ライセンスファイルの更新と変更Next3 写真と動画の規格

Last updated 3 years ago

Was this helpful?