在Matters實現私信功能(補圖)
Background:程序猿可直跳結尾 加密基礎而已
Matters暫無私信功能
賬號為一對一(顯示用戶az就係az ay無法假扮az留言)
利用公開平臺實現私信發送 本質即是網路通信中的防止中間人得知消息内容
即:A B在平臺公開互發密文 即使C能看到A B密文 亦無法得知AB通訊的内容
現假設 A在貼或comment 希望B向自己發送密文
实现这样的方式有两种
方法一:對稱加密 以DH算法爲例 在此不詳述 因爲比非對稱方法麻煩一點
A發送公共密鑰pub 及自己加密后公共密鑰A-pub
B發送協商密鑰pub-b 自己根據 A-pub-B加密後的 密文 Word-A-pub-B
方法二:非對稱加密 以RSA爲例
以公鑰pub加密之密文 只有以私鑰pri才能Decrpyt
具體操作步驟:
A先generate一個515bit密鑰對
https://www.devglan.com/online-tools/rsa-encryption-decryption
A的pri私鑰(A自己持有 不放上網)
MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAIB3oXaptLhaB8dT/eZY3P107xMrgRys10uTGYwxnLF5SZ5S3dEuMIJ8udre162u/a6AwLRF3XIIzP+M3RUsLVkCAwEAAQ==
A的pub公鑰為
MIIBVQIBADANBgkqhkiG9w0BAQEFAASCAT8wggE7AgEAAkEAgHehdqm0uFoHx1P95ljc/XTvEyuBHKzXS5MZjDGcsXlJnlLd0S4wgny52t7Xra79roDAtEXdcgjM/4zdFSwtWQIDAQABAkAjMiNPYlE7zJai+pTuHdx1qCqzwtB9rbDSaLuwGAuI54ARQ1ejTfLKjnURzn1edrO0+937kODU1gJzdtv5cGdxAiEA1hXXI3hhs7xm5Z2QpBK2WpFhS3QFBXwWmFx93rIvjn0CIQCZnojNxWgnRsJMLEJkwL1D1Tn+DI5mlhQXrCaR6JeFDQIgdDNels4cmeZFI5Smkafmero2STIsF5IG4aQyXdHxpjECIQCNhZfSugJx7KYjNsMTvtyeGVoLydWGfMyV4mrGENlGIQIhAKn8+WIFVNIA9qdD4Rzf4BfwYwWz2tW3jV6vlcWyPjsA
好了 現在用戶A在用戶B的帖子下留言:
我也是記者 我能加一下你麽 不如你telegram發我一下吧?
我的密鑰為MIIBVQIBADANBgkqhkiG9w0BAQEFAASCAT8wggE7AgEAAkEAgHehdqm0uFoHx1P95ljc/XTvEyuBHKzXS5MZjDGcsXlJnlLd0S4wgny52t7Xra79roDAtEXdcgjM/4zdFSwtWQIDAQABAkAjMiNPYlE7zJai+pTuHdx1qCqzwtB9rbDSaLuwGAuI54ARQ1ejTfLKjnURzn1edrO0+937kODU1gJzdtv5cGdxAiEA1hXXI3hhs7xm5Z2QpBK2WpFhS3QFBXwWmFx93rIvjn0CIQCZnojNxWgnRsJMLEJkwL1D1Tn+DI5mlhQXrCaR6JeFDQIgdDNels4cmeZFI5Smkafmero2STIsF5IG4aQyXdHxpjECIQCNhZfSugJx7KYjNsMTvtyeGVoLydWGfMyV4mrGENlGIQIhAKn8+WIFVNIA9qdD4Rzf4BfwYwWz2tW3jV6vlcWyPjsA
B看到用戶A的留言 希望向A發送自己的telegram號 卻不被無關的人看到
於是B選擇用A發出的密鑰 來加密自己的消息
並留言如下:
我也很想認識你 加我的telegram吧 號碼是:
CxyHVNF1te009tevEWtpE0NZ6zhrDH98LBddRGDIJ5CoA+y+OHo45tC9BrlLcEwQz4fYB7RAZOdXHtfpTNBgPg==
好了 用戶A獲得了B的回復 并把自己的私鑰輸進解密器 得到了B的telegram號
好了 我們現在從C 第三者的角度來看整段對話
A:
我很同情你的遭遇 同爲媒體人 我能加一下你麽 不如你telegram發我一下吧?
我的公鑰為MIIBVQIBADANBgkqhkiG9w0BAQEFAASCAT8wggE7AgEAAkEAgHehdqm0uFoHx1P95ljc/XTvEyuBHKzXS5MZjDGcsXlJnlLd0S4wgny52t7Xra79roDAtEXdcgjM/4zdFSwtWQIDAQABAkAjMiNPYlE7zJai+pTuHdx1qCqzwtB9rbDSaLuwGAuI54ARQ1ejTfLKjnURzn1edrO0+937kODU1gJzdtv5cGdxAiEA1hXXI3hhs7xm5Z2QpBK2WpFhS3QFBXwWmFx93rIvjn0CIQCZnojNxWgnRsJMLEJkwL1D1Tn+DI5mlhQXrCaR6JeFDQIgdDNels4cmeZFI5Smkafmero2STIsF5IG4aQyXdHxpjECIQCNhZfSugJx7KYjNsMTvtyeGVoLydWGfMyV4mrGENlGIQIhAKn8+WIFVNIA9qdD4Rzf4BfwYwWz2tW3jV6vlcWyPjsA
B:
我也很想認識你 加我的telegram吧 號碼是:
CxyHVNF1te009tevEWtpE0NZ6zhrDH98LBddRGDIJ5CoA+y+OHo45tC9BrlLcEwQz4fYB7RAZOdXHtfpTNBgPg==
由於站在C的角度 由於沒有擁有用戶A的私鑰 即使知道公鑰 也無法解密到底B向A到底發了什麽
如想測試 我的公鑰是
MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAJxsO+V+PZyqDVWfFIJFS8QiSxiSx/oJcC5dlDApZ2Jn9NvSpQtSleEWodC4yIT5OJrcX8XbSl/dJxmclQQkED8CAwEAAQ==
可在評論區發密文 我回復明文
在綫工具https://www.devglan.com/online-tools/rsa-encryption-decryption