SalesforceにおけるMD5アルゴリズムでのハッシュ化の方法と使用例を解説
IT・技術関連
更新日:2024.09.05


Salesforceにおけるハッシュ化とは?
SalesforceではMD5アルゴリズムを用いたハッシュ化が可能です。
Salesforceでは文字列、日付や時間、数値、パーセントなど、複数のデータ型を使用できます。その中でも文字列を取り扱う場合には、文字列の内容を容易に読み取れなくする変換が要求される場合があり、その変換をハッシュ化や暗号化と言います。
この内のハッシュ化とは任意のデータの不可逆変換を指し、Salesforceではハッシュ化のための関数が用意されています。
ここではハッシュ化の中でも、MD5アルゴリズムを用いたハッシュ化の概要や方法などについて見ていきましょう。ハッシュ化と混同されやすい暗号化との違いについても触れていきます。
SalesforceにおけるMD5アルゴリズムでのハッシュ化方法

ハッシュ化と暗号化
ハッシュ化は不可逆変換、暗号化は秘匿変換を意味します。 ハッシュ化は復号を前提としない一方向のみの不可逆変換で、ハッシュ化された値(ハッシュ値)から元の文字列を推測することは困難です。そのため、元の文字列の内容は問わずに、元の文字列と内容が一致するかどうかを検証したい場合に用いられます。 例えばパスワードの一致性や、転送したファイルの一致性、圧縮データの一致性など、一致性の検証に用いられています。 一方、暗号化は復号を前提とした秘匿変換で、鍵と呼ばれるデータを元に、暗号化された文字列を元の文字列に復号できます。そのため、鍵を持っている場合に限り元の文字列の内容が分かるような処理に用いられます。 例えば機密情報の保護や、メールの内容の保護など、秘匿性の確保に用いられています。 ハッシュ化も暗号化も元の文字列が何か容易に分からないように変換しますが、それぞれ目的が異なる変換ですので、混同しないように覚えておきましょう。MD5関数を用いたハッシュ化
MD5関数は所定の構文に従って使用する必要があります。 ここではMD5関数の使用方法として、その構文と使用例を解説します。複数の使用例を元に、各ケースにおける使用方法を見ていきましょう。 MD5関数の構文 MD5関数は下記構文に従い使用します。 MD5関数を使用する際は、引数にはハッシュ化したい任意の文字列と、エンコードに用いる文字セットを与えます。MD5(srcText, charSet)
引数srcTextにはハッシュ化したい文字列として、リテラル値やAPI参照名、数式等を与えます。引数charSetには、エンコードのための文字セットを文字列で与えます。文字セットは’UTC-8’もしくは’UTC-16’のいずれかを指定できます。
尚、charSetは省略も可能で、省略した場合は’UTC-8’が採用されます。
MD5関数の使用例
MD5関数は以下のように使用します。 具体的な使用例は以下の通りです。MD5('This is sample text.')
引数に与えられた文字列を、MD5アルゴリズムを用いてハッシュ化し、そのハッシュ値を返します。
MD5('This is also sample text.', 'UTC-16')
引数に与えられた文字列を、MD5アルゴリズムを用いてUTF-16エンコードでハッシュ化し、そのハッシュ値を返します。
Cryptoクラスを用いたハッシュ化
ApexではCryptoクラスのgenerateDigestメソッドを用いてハッシュ化します。 ここではApexにおけるハッシュ化の方法を解説します。 Apexでのハッシュ化ではCryptoクラスのgenerateDigestメソッドを用いますので、generateDigestメソッドの使用方法として、その構文と使用例を解説します。複数の使用例を元に、各ケースにおける使用方法を見ていきましょう。generateDigestメソッドの構文
generateDigestメソッドは下記構文に従い使用します。 generateDigestメソッドを使用する際は、引数にはハッシュ化アルゴリズムと、ハッシュ化したい任意の文字列を与えます。尚、ハッシュ化したい任意の文字列は、StringクラスではなくBlobクラスとして与えなくてはいけないので注意が必要です。generateDigest(hashAlgorithm, srcData)
引数hashAlgorithmにはハッシュ化アルゴリズムをStringクラスの文字列で与えます。MD5アルゴリズムでハッシュ化したい場合は’MD5’を与えます。他のアルゴリズムとしては、’SHA1’、’SHA3-256’、’SHA3-384’、’SHA3-512’、’SHA-256’、’SHA-512’を与えられます。
引数srcDataには、ハッシュ化したいStringクラスの文字列をBlobクラスのデータとして与えます。Stringクラスの文字列をBlobクラスのデータに変換するには、BlobクラスのvalueOfメソッドを使用します。
generateDigestメソッドの使用例
generateDigestメソッドは以下のように使用します。
具体的な使用例は以下の通りです。
Blob srcData = Blob.valueOf('This is sample text.');
Blob resultHash = Crypto.generateDigest('MD5', srcData);
1行目でハッシュ化したい文字列をBlobクラスのデータに変換しています。変換するにはvalueOfメソッドの引数にハッシュ化したい文字列を与えます。
2行目でハッシュ化しています。ハッシュ化に用いるアルゴリズムは、generateDigestの第一引数に与えられた文字列に対応するアルゴリズムです。この例ではMD5アルゴリズムを指定しています。第二引数には1行目でBlobクラスに変換したsrcDataを指定します。
Blobクラスについて
BlobクラスはBlobプリミティブデータ型のメソッドを含むクラスです。
BlobクラスはBlobプリミティブデータ型のメソッドを含むクラスで、Blobプリミティブデータ型は単一のオブジェクトとして表されるバイナリデータです。
BlobクラスのvalueOfメソッドではStringクラスの文字列からBlobクラスへの変換が、BlobクラスのtoStringメソッドではBlobクラスのデータからStringクラスの文字列への変換が可能です。
MD5アルゴリズムでのハッシュ化を活用しよう!

この記事の監修者・著者

- AWSパートナー/Salesforce認定コンサルティングパートナー 認定企業
-
ITエンジニア派遣サービス事業を行っています。AWSやSalesforceなど専門領域に特化したITエンジニアが4,715名在籍し、常時100名以上のITエンジニアの即日派遣が可能です。
・2021年:AWS Japan Certification Award 2020 ライジングスター of the Year 受賞
・2022年3月:人材サービス型 AWSパートナー認定
・AWS認定資格保有者数1,154名(2024年6月現在)
・Salesforce認定コンサルティングパートナー
・Salesforce認定資格者276名在籍(2024年5月現在)
・LPIC+CCNA 認定資格者:472 名(2024年6月時点)
最新の投稿
- 2024-12-27営業インタビュー情報共有の活性化の中心に。SP企画部の新たな取り組み
- 2024-07-01営業インタビュー最短で当日にご提案可能。 OPE営業の対応が早い3つの理由
- 2024-07-01営業インタビュー研修見学ツアーが高評価!「お客様のOPEに対する期待を高め、継続に貢献できればと思います。」
- 2024-07-01営業インタビュー信頼関係を構築し、エンジニアの長期就業へ
ITエンジニアの派遣を利用したい企業様へ

- 求人・転職サイトや自社採用サイトを使っているが、自社に合ったITエンジニアが応募してこない…
- すぐに採用したいが、応募がぜんぜん集まらない
こんな悩みをお持ちの採用・人事担当者の方は、
オープンアップITエンジニアをご検討ください!
オープンアップITエンジニアをご検討ください!
当社のITエンジニア派遣サービスは
- 派遣スピードが速い!(最短即日)
- 4,500名のエンジニアから貴社にマッチした人材を派遣
- 正社員雇用も可能
こんな特長があり、貴社の事業やプロジェクトに合った最適なITエンジニアを派遣可能です。
まずは下記ボタンから無料でご相談ください。