Как я отправляю и получаю зашифрованное электронное письмо в Ruby on Rails?

Вы можете просто прочитать read_html и распечатать таблицу.

import pandas as pd
f_states=pd.read_html('https://en.wikipedia.org/wiki/List_of_neighbourhoods_in_Toronto')
print(f_states[6])

Вывод:

 District Number                            Neighbourhoods Included
0              C01  Downtown, Harbourfront, Little Italy, Little P...
1              C02  The Annex, Yorkville, South Hill, Summerhill, ...
2              C03  Forest Hill South, Oakwood–Vaughan, Humewood–C...
3              C04  Bedford Park, Lawrence Manor, North Toronto, F...
4              C06           North York, Clanton Park, Bathurst Manor
5              C07  Willowdale, Newtonbrook West, Westminster–Bran...
6              C08  Cabbagetown, St. Lawrence Market, Toronto wate...
7              C09                               Moore Park, Rosedale
8              C10  Davisville Village, Midtown Toronto, Lawrence ...
9              C11         Leaside, Thorncliffe Park, Flemingdon Park
10             C13     Don Mills, Parkwoods–Donalda, Victoria Village
11             C14                  Newtonbrook East, Willowdale East
12             C15  Hillcrest Village, Bayview Woods – Steeles, Ba...
13             E01       Riverdale, Danforth (Greektown), Leslieville
14             E02                     The Beaches, Woodbine Corridor
15             E03  Danforth (Greektown), East York, Playter Estat...
16             E04  The Golden Mile, Dorset Park, Wexford, Maryval...
17             E05      Steeles, L'Amoreaux, Tam O'Shanter – Sullivan
18             E06        Birch Cliff, Oakridge, Hunt Club, Cliffside
19             E08  Scarborough Village, Cliffcrest, Guildwood, Eg...
20             E09  Scarborough City Centre, Woburn, Morningside, ...
21             E10  Rouge (South), Port Union (Centennial Scarboro...
22             E11                              Rouge (West), Malvern
23             W01  High Park, South Parkdale, Swansea, Roncesvall...
24             W02  Bloor West Village, Baby Point, The Junction (...
25             W03  Keelesdale, Eglinton West, Rockcliffe–Smythe, ...
26             W04  York, Glen Park, Amesbury (Brookhaven), Pelmo ...
27             W05  Downsview, Humber Summit, Humbermede (Emery), ...
28             W06        New Toronto, Long Branch, Mimico, Alderwood
29             W07              Sunnylea (The Queensway – Humber Bay)
30             W08  The Kingsway, Central Etobicoke, Eringate – Ce...
31             W09  Kingsview Village-The Westway, Richview (Willo...
32             W10  Rexdale, Clairville, Thistletown - Beaumond He...
7
задан Steve Weet 25 March 2009 в 09:01
поделиться

2 ответа

Если другой конец не использует Ваше приложение, необходимо использовать S/MIME или PGP.

Большинство настольных почтовых клиентов поддерживает S/MIME из поля, и PGP обычно доступен как плагин (для Thunderbird существует Enigmail, для Почты Apple существует GPGMail, и т.д.).

Кроме того, S/MIME нужны сертификаты, которые можно создать сами или купить у Центра сертификации (как Verisign или Thawte), в зависимости от потребностей.

Я уверен, что существуют библиотеки S/MIME и PGP для Ruby, но быстрый поиск не показал "одну истинную библиотеку" для меня. Однако можно всегда позволять OpenSSL (для S/MIME), или GPG делают тяжелый подъем для Вас.

3
ответ дан 7 December 2019 в 14:38
поделиться

Я думаю, что ответ Гюдера превосходен, но имейте в виду, что все, что требует, чтобы пользователь уже имел установлено что-то вроде GPG и доступен соответствующий ключ. Этот изнурительный процесс настройки составляет около 95% препятствий на пути к более широкому распространению шифрования электронной почты.

Вы уверены, что люди, заказавшие этот проект, понимают, что это « Разве это не так просто, как щелкнуть переключателем в коде для отправки зашифрованных писем?

Один из вариантов - включить в процесс установки вашей программы процедуру управления ключами, которая зависит от GPG (и включает в себя). Затем пользователь мог выбрать очень сложную парольную фразу (не забудьте запустить ее проверку, чтобы она была хотя бы буквенно-цифровой и т. Д.), Из нее можно было бы сгенерировать открытый ключ и загрузить его на популярные серверы ключей.

Сгенерированный key может использоваться для электронных писем, генерируемых программой, и, что наиболее важно, ключ будет уникальным для каждого пользователя. Затем вы можете сделать обычный внешний вызов почтовому клиенту по умолчанию в ОС пользователя, чтобы открыть электронное письмо.

Чтобы убедиться, что электронное письмо открывается зашифрованным, я бы проверил среду и получил почтовый клиент по умолчанию, затем отправьте электронное письмо из своей программы с необходимыми флагами, необходимыми для шифрования сгенерированного электронного письма. Это означает, что для Thunderbird Enigmail все будет иначе, чем, например, для Apple Mail.

Но не забывайте про OpenSSL, конечно же ....

1
ответ дан 7 December 2019 в 14:38
поделиться
Другие вопросы по тегам:

Похожие вопросы: