Go

Amazon CognitoGo

GolangでCognito認証しトークンを取得する

自分が関わっているサービスで、認証にAmazon Cognitoを使っています。 Amazon Cognito(ウェブ/モバイルアプリのユーザー管理)| AWSAmazon Web Services, Inc. [https://aws.amazon.com/jp/cognito/] 全てのリクエストについてトークンの検証をするので、APIサーバの動作確認時に必ずヘッダにトークンをセットする必要があります。このトークンを用意するのが地味に面倒だったので、Golangでスクリプトを書きました。 以下の記事を参考にしました。 golangでCognito認証(ただしSecure Remote Password(SRP)プロトコルではない) - Qiita参考 http://docs.aws.amazon.com/ja_jp/cognito/latest/developerguide/amazon-cognito-user-pools-authentication-flow.ht... Qiitacobachan [https://qiita.com/cobachan/items/9e
Yu Takahashi
Yu Takahashi
2 min read
algorithmBITGo

Signed bitとBITとGoと

目次 * きっかけ * Two’s complement(2の補数) * 累積和 * BIT(binary indexed tree) * 転倒数 きっかけ 先日友人から下記の結果についての質問がきた。 package main import ( "fmt" ) func main() { const a = ^0 fmt.Println(a) } 皆さんも予想してみてほしい。 実行は↓から The Go Playground [https://play.golang.org/p/qpWRExXsJ8E] ^0 はNOTでbit反転なのだが、値はintegerのmax値になることなく `-1` となる。 これは、ご存知Signed Integer で全bitが1の場合はTwo’s complement(2の補数)となり `-1`が出力される。 そして、Goのconstは数値が右辺に来た場合はSigned Integer Typeとデフォルトで解釈する。 では uintのmaxの値をbit反転で取りたい場合はというと package
Kohei Kondo
Kohei Kondo
5 min read
GoDESCrypt

共通鍵暗号の1つであるS-DES(Simplified DES)をGoで実装してみたその1~key generate編~

共通鍵暗号の1つであるS-DES(Simplified DES)をGoで実装してみたその1~key generate編~ 前回は公開鍵暗号の1つであるRSA暗号を実装してみたが、今回は共通鍵暗号の1つであるS-DESを実装していく。 公開鍵暗号の1つを実装してみたのであれば、共通鍵暗号の1つも実装しないわけには行かないだろう 公開鍵暗号の1つであるRSA暗号をGolangで実装してみる注意: ところどころ簡素化してあるところはありますMediumkooooohe [https://medium.com/@1211lta/%E5%85%AC%E9%96%8B%E9%8D%B5%E6%9A%97%E5%8F%B7%E3%81%AE1%E3%81%A4%E3%81%A7%E3%81%82%E3%82%8Brsa%E6%9A%97%E5%8F%B7%E3%82%92golang%E3%81%A7%E5%AE%9F%E8%A3%85%E3%81%97%E3%81%A6%E3%81%BF%E3%82%8B-a8d8ad01b903] GitHub - kooooohe/SimplifiedDE
Kohei Kondo
Kohei Kondo
4 min read
fibonacci numberGogolang

【高速】フィボナッチ数列をビネの公式を使いGoで実装する

結論 O(log (n))となり 1000項目めを求めるには0.000199s 10000項目めは0.000405sで求められました。 完成品 https://github.com/kooooohe/fibonacci/blob/master/main.g [https://github.com/kooooohe/fibonacci/blob/master/main.go]o 通常の再帰を使った簡単な解き方 fib_blog_1.goGitHub Gist: instantly share code, notes, and snippets.Gist 262588213843476 [https://gist.github.com/kooooohe/17818f61bcfe287eb2709466eaccbf7f]func fib(num int) int { if num <= 1 { return num } return fib(num-2) + fib(num-1) } これだとO(2^n)となるためかなり遅い。 ※メモ化については今回は割愛
Kohei Kondo
Kohei Kondo
6 min read
GoRSACrypt

公開鍵暗号の1つであるRSA暗号をGoで実装してみる

注意: ところどころ簡素化してあるところはあります 公開鍵暗号とは > 公開鍵暗号Public-key cryptography [https://en.wikipedia.org/wiki/Public-key_cryptography]暗号化 [https://ja.wikipedia.org/wiki/%E6%9A%97%E5%8F%B7%E5%8C%96]復号 [https://ja.wikipedia.org/wiki/%E5%BE%A9%E5%8F%B7]暗号方式 [https://ja.wikipedia.org/wiki/%E6%9A%97%E5%8F%B7%E6%96%B9%E5%BC%8F] 公開鍵暗号 - Wikipediaウィキメディア財団Contributors to Wikimedia projects [https://ja.wikipedia.org/wiki/%E5%85%AC%E9%96%8B%E9%8D%B5%E6%9A%97%E5%8F%B7]流れ * 2種類の素数p,qを準備する(p != q) * 各素数の積 Nを計算 (p * q)
Kohei Kondo
Kohei Kondo
4 min read
Gogolanginterpreter

Top down operator precedence(再帰下降構文解析 Pratt Parser)におけるExpression(式)の解析、AST(抽象構文木)構築 処理を追う

Top down operator precedence(再帰下降構文解析 Pratt Parser)におけるExpression(式)の解析、AST(抽象構文木)構築 処理を追う Goで作る インタプリタ Go言語でつくるインタプリタ | Thorsten Ball, 設樂 洋爾 |本 | 通販 | AmazonAmazonでThorsten Ball, 設樂 洋爾のGo言語でつくるインタプリタ。アマゾンならポイント還元本が多数。Thorsten Ball, 設樂 洋爾作品ほか、お急ぎ便対象商品は当日お届けも可能。またGo言語でつくるインタプリタもアマゾン配送商品なら通常配送無料。AmazonThorsten Ball [https://www.amazon.co.jp/dp/4873118220/ref=cm_sw_r_tw_dp_U_x_E91IDbNW6D0K4] 死ぬほどおすすめなので是非、 Goの基礎とTDDの基礎、簡単なデザインパターンの理解があるとよりよい。むしろそれらを知っている人にかなりおすすめの本である。 この本に出てくる Pratt ParserによるAS
Kohei Kondo
Kohei Kondo
6 min read