投稿

11月, 2020の投稿を表示しています

秘密鍵と公開鍵、RSA暗号の仕組み

暗号 公開鍵と秘密鍵とは 普段スマホアプリをGooglePlayに公開するときにデジタル証明書を使いますが、このあたりの勉強をしている時に暗号の分野で 公開鍵 と 秘密鍵 の話が出てきました。 過去に大学の代数学で勉強したことを思いだし、これらの暗号を勉強しなおしながらコードを書いてみようと思いました。 では早速ですが、 公開鍵 と 秘密鍵 とは何でしょうか。 そもそも暗号化する目的は、相手とのやり取りを第三者に知られないように違う文字(暗号)などに置き換えて送付、受け取った側はそれを複合し正しい文章を読むためです。この2人には互いに暗号複合するための鍵を持っており、この鍵を知らない第三者は読むことができなくなります。 この鍵の仕組みには今回紹介する 公開鍵 と 秘密鍵 以外にも 共通鍵 というものも存在していますが、共通鍵はセキュリティの問題から公開鍵と秘密鍵を使うことの方が多いようです。 そこで、本題の公開鍵と秘密鍵ですが、今回は文章を受診するA社と文章を送付するB社について公開鍵と秘密鍵を説明していきます。 公開鍵はその名前の通り、公開している鍵でA社B社以外の第三者に見られても問題ない鍵のことで、逆に秘密鍵は一切公開しない鍵で、暗号されたものを複合するときに使います。 これだけ聞くと「鍵を第三者に知られたらセキュリティ的に問題では?」と思うかもしれませんが、B社の公開鍵で暗号化されたものはA社の持つ秘密鍵でしか複合できません。そのため公開鍵を使って暗号化した文章をA社以外が確認することはできません。 間違えて違う会社に送付しても大丈夫!!(だからって誤送信は絶対ダメ) RSA暗号を使ったやり取り 先ほど説明した公開鍵と秘密鍵に使われているアルゴリズムは RSA暗号 というものです。 RSA暗号とは 素因数分解の難しさを利用した暗号アルゴリズム のことです。素数も素因数も中学生の時に習うものですが、この素数は規則性などが分かっ

Xamarin.Forms でListViewの高さが更新されない問題について

イメージ
ListViewの高さを更新する Xamarin.FormsのListViewの高さが更新されない問題 最近は ListView を使用することが多いのですが、これがまた厄介で、普通に使用する分にはいいのですがカスタマイズしようとすると色々問題が起きます。 今回起きた問題は、 ListView 項目の高さが更新されない問題です。 XAML で項目の高さを指定することはできるのですが、例えば項目要素の文字数などが変わった際に高さが固定されたままなので文字の一部が表示されないと言った問題です。 実際に今回実装しようと思ったものは、アイテムをタップすると隠してあった Label が表示される機能でした。  →  実装について Label の非表示などは IsVisible で管理できるのですが、 ListView の要素には「 x:Name 」を使用することはできません。これは ListView の要素は複数あり、一つを指定する事ができないためです。 では、どうやって管理するのか。このように ListView でまとめて管理するためにはデータバインディングを使用します。 ListView のソースとして指定しているリストのクラスに IsVisible 用の bool 変数を用意しておくだけです。 <ViewCell> <StackLayout> <Label Text="{Binding .Question}" FontSize="25" TextColor=&qu
イメージ
自作アプリの紹介 メモ帳掲示板 今回は自作アプリの メモ帳掲示板 の紹介をしていきます。 Androidってメモ帳が標準で搭載されている端末少ないですよね。私が昔使っていたXperiaでは標準であったんですけど、以降のXperiaにはなかったんですよね、、 なのでなにかいいメモ帳ないかなって思ったんですけど、自分で作ってみればいいかなと思い、今回アプリの作成を行いました。 このアプリは、掲示板形式でメモが取れるアプリとなっています。また掲示板特有のタグを使った機能もあります。 実際の操作について 起動画面 この画面がアプリ起動時に表示される画面です。 この画面では、掲示板の一覧が表示去れています。掲示板は 最大5つ まで作成することができ、タイトルを自由に設定することができます。 分類わけすることで、内容にそって掲示板を作成することができメモの管理は簡単です! 掲示板のタイトルを長押しすることで、掲示板の削除とタイトル編集をすることができます。 メイン画面 先ほどの起動画面から掲示板を選択すると、その掲示板に登録されているメモが表示されます。 登録されているメモは古いものから順に上から表示されます。表示されているものは「id」「投稿時間」「タグ」「メモ内容」です。 idと投稿時間はメモを投稿したときに自動で取得されます。これによりユーザが入力するものはメモの内容だけになります。 メモは画面右上の「+」ボタンから登録できます。 これが、入力画面となります。 メモしたいことを入力欄に入力して、「OK」押すと登録できます! な