<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>OpenSSL on G. T. Wang</title>
    <link>https://blog.gtwang.org/tags/openssl/</link>
    <description>Recent content in OpenSSL on G. T. Wang</description>
    <generator>Hugo -- 0.162.0</generator>
    <language>zh-tw</language>
    <copyright>G. T. Wang</copyright>
    <lastBuildDate>Fri, 09 Dec 2022 11:26:01 +0800</lastBuildDate>
    <atom:link href="https://blog.gtwang.org/tags/openssl/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>C 語言使用 OpenSSL 實作橢圓曲線 ECDH 金鑰交換教學與範例</title>
      <link>https://blog.gtwang.org/programming/c-openssl-ecdh-implementation-tutorial-examples/</link>
      <pubDate>Fri, 09 Dec 2022 11:26:01 +0800</pubDate>
      <guid>https://blog.gtwang.org/programming/c-openssl-ecdh-implementation-tutorial-examples/</guid>
      <description>&lt;p&gt;介紹如何在 C 語言中使用 OpenSSL 實作橢圓曲線 ECDH 金鑰交換。&lt;/p&gt;
&lt;p&gt;

&lt;ins class=&#34;adsbygoogle&#34;
     style=&#34;display:block&#34;
     data-ad-client=&#34;ca-pub-7794009487786811&#34;
     data-ad-slot=&#34;9921134032&#34;
     data-ad-format=&#34;auto&#34;
     data-full-width-responsive=&#34;true&#34;&gt;&lt;/ins&gt;
&lt;script&gt;
     (adsbygoogle = window.adsbygoogle || []).push({});
&lt;/script&gt;
&lt;/p&gt;

&lt;h2 id=&#34;產生橢圓曲線金鑰對&#34;&gt;產生橢圓曲線金鑰對&lt;/h2&gt;
&lt;p&gt;在實作橢圓曲線 ECDH 金鑰交換之前，要先產生兩對橢圓曲線的金鑰對，以下是以 C 語言程式的方式來產生金鑰的範例：&lt;/p&gt;</description>
    </item>
    <item>
      <title>C 語言使用 OpenSSL 實作 PBKDF2 教學與範例</title>
      <link>https://blog.gtwang.org/programming/c-openssl-pbkdf2-hmac-implementation-tutorial-examples/</link>
      <pubDate>Thu, 08 Dec 2022 11:15:41 +0800</pubDate>
      <guid>https://blog.gtwang.org/programming/c-openssl-pbkdf2-hmac-implementation-tutorial-examples/</guid>
      <description>&lt;p&gt;介紹如何在 C 語言中使用 OpenSSL 函式庫實作各種 PBKDF2 密鑰延伸演算法。&lt;/p&gt;
&lt;p&gt;

&lt;ins class=&#34;adsbygoogle&#34;
     style=&#34;display:block&#34;
     data-ad-client=&#34;ca-pub-7794009487786811&#34;
     data-ad-slot=&#34;9921134032&#34;
     data-ad-format=&#34;auto&#34;
     data-full-width-responsive=&#34;true&#34;&gt;&lt;/ins&gt;
&lt;script&gt;
     (adsbygoogle = window.adsbygoogle || []).push({});
&lt;/script&gt;
&lt;/p&gt;

&lt;p&gt;PBKDF2（Password-Based Key Derivation Function）是一種密鑰延伸（key stretching）演算法，透過反覆的大量運算，降低密鑰產生的速度，讓暴力破解的難度變高。實務上 PBKDF2 會搭配 SHA1、SHA256、SHA512 等雜湊演算法，以下是以 OpenSSL 函式庫實作的 C 語言範例。&lt;/p&gt;</description>
    </item>
    <item>
      <title>C 語言使用 OpenSSL 實作 AES 加密、解密教學與範例</title>
      <link>https://blog.gtwang.org/programming/c-openssl-aes-encryption-and-decryption-tutorial-examples/</link>
      <pubDate>Tue, 06 Dec 2022 19:10:59 +0800</pubDate>
      <guid>https://blog.gtwang.org/programming/c-openssl-aes-encryption-and-decryption-tutorial-examples/</guid>
      <description>&lt;p&gt;介紹如何在 C 語言程式中使用 OpenSSL 函式庫，以 AES 對稱式加密演算法實作資料的加密與解密。&lt;/p&gt;
&lt;p&gt;

&lt;ins class=&#34;adsbygoogle&#34;
     style=&#34;display:block&#34;
     data-ad-client=&#34;ca-pub-7794009487786811&#34;
     data-ad-slot=&#34;9921134032&#34;
     data-ad-format=&#34;auto&#34;
     data-full-width-responsive=&#34;true&#34;&gt;&lt;/ins&gt;
&lt;script&gt;
     (adsbygoogle = window.adsbygoogle || []).push({});
&lt;/script&gt;
&lt;/p&gt;

&lt;h2 id=&#34;安裝-openssl-函式庫&#34;&gt;安裝 OpenSSL 函式庫&lt;/h2&gt;
&lt;p&gt;若在 Ubuntu Linux 中，可以使用 &lt;code&gt;apt&lt;/code&gt; 安裝 OpenSSL 函式庫與編譯相關套件：&lt;/p&gt;</description>
    </item>
    <item>
      <title>OpenSSL 指令產生、驗證 ECDSA 橢圓曲線數位簽章教學與範例</title>
      <link>https://blog.gtwang.org/linux/openssl-command-ecdsa-elliptic-curve-digital-signature-creation-and-verification-tutorial-examples/</link>
      <pubDate>Mon, 05 Dec 2022 11:50:08 +0800</pubDate>
      <guid>https://blog.gtwang.org/linux/openssl-command-ecdsa-elliptic-curve-digital-signature-creation-and-verification-tutorial-examples/</guid>
      <description>&lt;p&gt;介紹如何使用 OpenSSL 指令產生橢圓曲線加密金鑰，以 ECDSA 對檔案進行數位簽章，並驗證簽章有效性。&lt;/p&gt;
&lt;p&gt;

&lt;ins class=&#34;adsbygoogle&#34;
     style=&#34;display:block&#34;
     data-ad-client=&#34;ca-pub-7794009487786811&#34;
     data-ad-slot=&#34;9921134032&#34;
     data-ad-format=&#34;auto&#34;
     data-full-width-responsive=&#34;true&#34;&gt;&lt;/ins&gt;
&lt;script&gt;
     (adsbygoogle = window.adsbygoogle || []).push({});
&lt;/script&gt;
&lt;/p&gt;

&lt;h2 id=&#34;openssl-指令實作-ecdsa-橢圓曲線數位簽章&#34;&gt;OpenSSL 指令實作 ECDSA 橢圓曲線數位簽章&lt;/h2&gt;
&lt;p&gt;在實作 ECDSA 之前，要先決定採用的橢圓曲線，我們可以使用已下指令查詢 OpenSSL 中支援的橢圓曲線：&lt;/p&gt;</description>
    </item>
    <item>
      <title>OpenSSL 指令實作橢圓曲線 ECDH 金鑰交換與 AES 加密教學與範例</title>
      <link>https://blog.gtwang.org/linux/openssl-command-ecdh-aes-implementation-tutorial-examples/</link>
      <pubDate>Sun, 04 Dec 2022 19:07:02 +0800</pubDate>
      <guid>https://blog.gtwang.org/linux/openssl-command-ecdh-aes-implementation-tutorial-examples/</guid>
      <description>&lt;p&gt;介紹如何以 OpenSSL 的指令實作橢圓曲線 ECDH 金鑰交換，並參考 ECIES 加密架構，搭配 AES 演算法加密資料。&lt;/p&gt;
&lt;p&gt;

&lt;ins class=&#34;adsbygoogle&#34;
     style=&#34;display:block&#34;
     data-ad-client=&#34;ca-pub-7794009487786811&#34;
     data-ad-slot=&#34;9921134032&#34;
     data-ad-format=&#34;auto&#34;
     data-full-width-responsive=&#34;true&#34;&gt;&lt;/ins&gt;
&lt;script&gt;
     (adsbygoogle = window.adsbygoogle || []).push({});
&lt;/script&gt;
&lt;/p&gt;

&lt;blockquote class=&#34;caution&#34;&gt;&lt;p&gt;本篇文章屬於個人學習記錄，內容可能有誤，僅供參考，請勿用於正式環境。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id=&#34;openssl-指令實作-ecdh-金鑰交換&#34;&gt;OpenSSL 指令實作 ECDH 金鑰交換&lt;/h2&gt;
&lt;p&gt;橢圓曲線迪菲-赫爾曼（Elliptic Curve Diffie–Hellman，簡稱 ECDH）金鑰交換方法是雙方利用由橢圓曲線密碼學建立的公鑰與私鑰對，在一個不安全的通道中，建立一組雙方共享的密鑰。&lt;/p&gt;</description>
    </item>
    <item>
      <title>OpenSSL 加密大型檔案指令教學與範例</title>
      <link>https://blog.gtwang.org/linux/openssl-encrypt-decrypt-large-file-command-tutorial-examples/</link>
      <pubDate>Tue, 29 Nov 2022 14:25:28 +0800</pubDate>
      <guid>https://blog.gtwang.org/linux/openssl-encrypt-decrypt-large-file-command-tutorial-examples/</guid>
      <description>&lt;p&gt;介紹如何使用 OpenSSL 指令，以 AES 與 RSA 這兩個對稱式與非對稱式加密演算法，加密與解密大型檔案。&lt;/p&gt;
&lt;p&gt;

&lt;ins class=&#34;adsbygoogle&#34;
     style=&#34;display:block&#34;
     data-ad-client=&#34;ca-pub-7794009487786811&#34;
     data-ad-slot=&#34;9921134032&#34;
     data-ad-format=&#34;auto&#34;
     data-full-width-responsive=&#34;true&#34;&gt;&lt;/ins&gt;
&lt;script&gt;
     (adsbygoogle = window.adsbygoogle || []).push({});
&lt;/script&gt;
&lt;/p&gt;

&lt;blockquote class=&#34;caution&#34;&gt;&lt;p&gt;本篇文章屬於個人學習記錄，內容可能有誤，僅供參考，請勿用於正式環境。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id=&#34;產生測試檔案&#34;&gt;產生測試檔案&lt;/h2&gt;
&lt;p&gt;首先要產生一個測試加密用的大檔案，產生的方式有很多種，任選一種來使用即可：&lt;/p&gt;</description>
    </item>
    <item>
      <title>OpenSSL 指令產生、驗證 RSA 數位簽章教學與範例</title>
      <link>https://blog.gtwang.org/linux/openssl-rsa-signing-and-verification-tutorial-examples/</link>
      <pubDate>Tue, 15 Jun 2021 08:22:41 +0800</pubDate>
      <guid>https://blog.gtwang.org/linux/openssl-rsa-signing-and-verification-tutorial-examples/</guid>
      <description>&lt;p&gt;介紹如何使用 OpenSSL 指令產生檔案的數位簽章，並驗證簽章的有效性。&lt;/p&gt;
&lt;p&gt;

&lt;ins class=&#34;adsbygoogle&#34;
     style=&#34;display:block&#34;
     data-ad-client=&#34;ca-pub-7794009487786811&#34;
     data-ad-slot=&#34;9921134032&#34;
     data-ad-format=&#34;auto&#34;
     data-full-width-responsive=&#34;true&#34;&gt;&lt;/ins&gt;
&lt;script&gt;
     (adsbygoogle = window.adsbygoogle || []).push({});
&lt;/script&gt;
&lt;/p&gt;

&lt;h2 id=&#34;建立-rsa-金鑰&#34;&gt;建立 RSA 金鑰&lt;/h2&gt;
&lt;p&gt;首先使用以下 OpenSSL 指令產生長度為 8912 位元的 RSA 私鑰，並設定保護金鑰的密碼。&lt;/p&gt;</description>
    </item>
    <item>
      <title>OpenSSL 轉換 PEM、DER、PKCS#12 憑證格式教學與範例</title>
      <link>https://blog.gtwang.org/linux/openssl-convert-pem-der-pkcs12-ssl-certificate-tutorial-examples/</link>
      <pubDate>Mon, 14 Jun 2021 20:47:39 +0800</pubDate>
      <guid>https://blog.gtwang.org/linux/openssl-convert-pem-der-pkcs12-ssl-certificate-tutorial-examples/</guid>
      <description>&lt;p&gt;介紹如何在 Linux 中使用 OpenSSL 指令轉換 PEM、DER 與 PKCS #12 格式的憑證檔案。&lt;/p&gt;
&lt;p&gt;

&lt;ins class=&#34;adsbygoogle&#34;
     style=&#34;display:block&#34;
     data-ad-client=&#34;ca-pub-7794009487786811&#34;
     data-ad-slot=&#34;9921134032&#34;
     data-ad-format=&#34;auto&#34;
     data-full-width-responsive=&#34;true&#34;&gt;&lt;/ins&gt;
&lt;script&gt;
     (adsbygoogle = window.adsbygoogle || []).push({});
&lt;/script&gt;
&lt;/p&gt;

&lt;h2 id=&#34;ssl-憑證格式&#34;&gt;SSL 憑證格式&lt;/h2&gt;
&lt;p&gt;常見的 SSL 憑證的檔案格式大概有以下幾種：&lt;/p&gt;
&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;種類&lt;/th&gt;
					&lt;th&gt;格式&lt;/th&gt;
					&lt;th&gt;副檔名&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;Base64 文字&lt;/td&gt;
					&lt;td&gt;PEM&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;.pem&lt;/code&gt;、&lt;code&gt;.crt&lt;/code&gt;、&lt;code&gt;.cer&lt;/code&gt;、&lt;code&gt;.key&lt;/code&gt;&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;Base64 文字&lt;/td&gt;
					&lt;td&gt;PKCS #7&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;.p7b&lt;/code&gt;、&lt;code&gt;.p7c&lt;/code&gt;&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;二進位&lt;/td&gt;
					&lt;td&gt;DER&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;.cer&lt;/code&gt;、&lt;code&gt;.der&lt;/code&gt;&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;二進位&lt;/td&gt;
					&lt;td&gt;PKCS #12&lt;/td&gt;
					&lt;td&gt;&lt;code&gt;.pfx&lt;/code&gt;、&lt;code&gt;.p12&lt;/code&gt;&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;在這些憑證格式中，PEM 算是比較常見的，若遇到需要換格式的時候，可以使用以下的 OpenSSL 的指令來處理。&lt;/p&gt;</description>
    </item>
    <item>
      <title>OpenSSL 使用 S/MIME 快速加密、解密大型檔案教學與範例</title>
      <link>https://blog.gtwang.org/linux/openssl-smime-encrypt-decrypt-large-files-tutorial-examples/</link>
      <pubDate>Mon, 14 Jun 2021 15:33:06 +0800</pubDate>
      <guid>https://blog.gtwang.org/linux/openssl-smime-encrypt-decrypt-large-files-tutorial-examples/</guid>
      <description>&lt;p&gt;介紹如何使用 OpenSSL 的 S/MIME 功能對大型檔案進行加密與解密。&lt;/p&gt;
&lt;p&gt;

&lt;ins class=&#34;adsbygoogle&#34;
     style=&#34;display:block&#34;
     data-ad-client=&#34;ca-pub-7794009487786811&#34;
     data-ad-slot=&#34;9921134032&#34;
     data-ad-format=&#34;auto&#34;
     data-full-width-responsive=&#34;true&#34;&gt;&lt;/ins&gt;
&lt;script&gt;
     (adsbygoogle = window.adsbygoogle || []).push({});
&lt;/script&gt;
&lt;/p&gt;

&lt;blockquote class=&#34;tldr&#34;&gt;&lt;p&gt;&lt;strong&gt;相關文章：&lt;/strong&gt;&lt;br&gt;
&lt;a href=&#34;https://blog.gtwang.org/linux/linux-openssl-file-symmetic-asymmetric-encryption-commands-tutorial-examples/&#34;&gt;OpenSSL 對稱式、非對稱式加密檔案指令教學與範例&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id=&#34;準備憑證&#34;&gt;準備憑證&lt;/h2&gt;
&lt;p&gt;在使用 S/MIME 之前，必須要準備加密用的憑證，如果沒有憑證，可以自己產生一個自行簽署的憑證來使用。&lt;/p&gt;</description>
    </item>
    <item>
      <title>OpenSSL 對稱式、非對稱式加密檔案指令教學與範例</title>
      <link>https://blog.gtwang.org/linux/linux-openssl-file-symmetic-asymmetric-encryption-commands-tutorial-examples/</link>
      <pubDate>Mon, 14 Jun 2021 10:13:35 +0800</pubDate>
      <guid>https://blog.gtwang.org/linux/linux-openssl-file-symmetic-asymmetric-encryption-commands-tutorial-examples/</guid>
      <description>&lt;p&gt;介紹使用 OpenSSL 指令進行對稱式、非對稱式加密與解密的方法與實際範例。&lt;/p&gt;
&lt;p&gt;

&lt;ins class=&#34;adsbygoogle&#34;
     style=&#34;display:block&#34;
     data-ad-client=&#34;ca-pub-7794009487786811&#34;
     data-ad-slot=&#34;9921134032&#34;
     data-ad-format=&#34;auto&#34;
     data-full-width-responsive=&#34;true&#34;&gt;&lt;/ins&gt;
&lt;script&gt;
     (adsbygoogle = window.adsbygoogle || []).push({});
&lt;/script&gt;
&lt;/p&gt;

&lt;blockquote class=&#34;tldr&#34;&gt;&lt;p&gt;&lt;strong&gt;相關文章：&lt;/strong&gt;&lt;br&gt;
&lt;a href=&#34;https://blog.gtwang.org/linux/openssl-smime-encrypt-decrypt-large-files-tutorial-examples/&#34;&gt;OpenSSL 使用 S/MIME 快速加密、解密大型檔案教學與範例&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote class=&#34;caution&#34;&gt;&lt;p&gt;本篇文章屬於個人學習記錄，內容可能有誤，僅供參考，請勿用於正式環境。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id=&#34;aes-對稱式加密&#34;&gt;AES 對稱式加密&lt;/h2&gt;
&lt;p&gt;&lt;a href=&#34;https://zh.wikipedia.org/wiki/%E5%B0%8D%E7%A8%B1%E5%AF%86%E9%91%B0%E5%8A%A0%E5%AF%86&#34;&gt;對稱式加密（symmetric encryption）&lt;/a&gt;簡單來說就是使用一組密碼來加密檔案，而解密時也是使用同一組密碼，操作流程簡單，但是安全性較低。&lt;/p&gt;</description>
    </item>
    <item>
      <title>Linux 使用 OpenSSL 指令檢查 TLS/SSL 憑證到期日教學與範例</title>
      <link>https://blog.gtwang.org/linux/linux-openssl-find-check-tls-ssl-certificate-expiry-date-tutorial-examples/</link>
      <pubDate>Sun, 18 Apr 2021 18:40:18 +0800</pubDate>
      <guid>https://blog.gtwang.org/linux/linux-openssl-find-check-tls-ssl-certificate-expiry-date-tutorial-examples/</guid>
      <description>&lt;p&gt;介紹如何在 Linux 系統中使用 &lt;code&gt;openssl&lt;/code&gt; 指令查詢網頁伺服器 TLS/SSL 憑證的有效期限。&lt;/p&gt;
&lt;p&gt;

&lt;ins class=&#34;adsbygoogle&#34;
     style=&#34;display:block&#34;
     data-ad-client=&#34;ca-pub-7794009487786811&#34;
     data-ad-slot=&#34;9921134032&#34;
     data-ad-format=&#34;auto&#34;
     data-full-width-responsive=&#34;true&#34;&gt;&lt;/ins&gt;
&lt;script&gt;
     (adsbygoogle = window.adsbygoogle || []).push({});
&lt;/script&gt;
&lt;/p&gt;

&lt;h2 id=&#34;透過網路檢查網站-tlsssl-憑證到期日&#34;&gt;透過網路檢查網站 TLS/SSL 憑證到期日&lt;/h2&gt;
&lt;p&gt;如果要透過網路檢查指定網站的 TLS/SSL 憑證有效期限，可以使用以下指令：&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
