Created
June 15, 2014 19:53
-
-
Save pascalduez/5d4d0c9542f2cc7a13ca to your computer and use it in GitHub Desktop.
Generated by SassMeister.com.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// ---- | |
// Sass (v3.3.8) | |
// Compass (v1.0.0.alpha.19) | |
// SassyBitwise (v1.1.2) | |
// ---- | |
@import "SassyBitwise"; | |
$ascii: ( | |
32: " ", // (space) | |
33: "!", | |
34: '"', | |
35: "#", | |
36: "$", | |
37: "%", | |
38: "&", | |
39: "'", | |
40: "(", | |
41: ")", | |
42: "*", | |
43: "+", | |
44: ",", | |
45: "-", | |
46: ".", | |
47: "/", | |
48: "0", | |
49: "1", | |
50: "2", | |
51: "3", | |
52: "4", | |
53: "5", | |
54: "6", | |
55: "7", | |
56: "8", | |
57: "9", | |
58: ":", | |
59: ";", | |
60: "<", | |
61: "=", | |
62: ">", | |
63: "?", | |
64: "@", | |
65: "A", | |
66: "B", | |
67: "C", | |
68: "D", | |
69: "E", | |
70: "F", | |
71: "G", | |
72: "H", | |
73: "I", | |
74: "J", | |
75: "K", | |
76: "L", | |
77: "M", | |
78: "N", | |
79: "O", | |
80: "P", | |
81: "Q", | |
82: "R", | |
83: "S", | |
84: "T", | |
85: "U", | |
86: "V", | |
87: "W", | |
88: "X", | |
89: "Y", | |
90: "Z", | |
91: "[", | |
92: "\\", | |
93: "]", | |
94: "^", | |
95: "_", | |
96: "`", | |
97: "a", | |
98: "b", | |
99: "c", | |
100: "d", | |
101: "e", | |
102: "f", | |
103: "g", | |
104: "h", | |
105: "i", | |
106: "j", | |
107: "k", | |
108: "l", | |
109: "m", | |
110: "n", | |
111: "o", | |
112: "p", | |
113: "q", | |
114: "r", | |
115: "s", | |
116: "t", | |
117: "u", | |
118: "v", | |
119: "w", | |
120: "x", | |
121: "y", | |
122: "z", | |
123: "{", | |
124: "|", | |
125: "}", | |
126: "~" | |
); | |
@function backslash() { | |
@return str-slice('\\', -1); | |
} | |
@function ascii-char($code) { | |
@if $code == 92 { | |
@return backslash(); | |
} | |
@return map-get($ascii, $code); | |
} | |
@function ascii-code($char) { | |
@if $char == backslash() { | |
@return 92; | |
} | |
@return map-search($ascii, $char); | |
} | |
// Searches the map for a given value | |
// and returns the corresponding key if successful. | |
// -------- | |
// @param [map] $map | |
// @param [literal] $value | |
// -------- | |
// @return [literal] | |
@function map-search($map, $value) { | |
$keys: map-keys($map); | |
$values: map-values($map); | |
$index: index($values, $value); | |
@if not $index { | |
@warn "No value found for '#{$value}' in map."; | |
@return false; | |
} | |
@return nth($keys, $index); | |
} | |
@function char-code-at($str, $index: 1) { | |
@return ascii-code(str-slice($str, $index, $index)); | |
} | |
@function from-char-code($code) { | |
@return ascii-char($code); | |
} | |
@function key-char-at($key, $index) { | |
@return char-code-at($key, floor($index % str-length($key))); | |
} | |
@function xor-encrypt($message, $key) { | |
$result: (); | |
@for $i from 1 through str-length($message) { | |
$c: bw(char-code-at($message, $i) '^' key-char-at($key, $i)); | |
$result: append($result, $c); | |
} | |
@return $result; | |
} | |
@function xor-decrypt($message, $key) { | |
$result: ''; | |
@for $i from 1 through length($message) { | |
$c: bw(nth($message, $i) '^' key-char-at($key, $i)); | |
$result: $result + from-char-code($c); | |
} | |
@return $result; | |
} | |
tests { | |
$e: xor-encrypt('Hallo Berlin !', 'abc'); | |
e: $e; | |
d: xor-decrypt($e, 'abc'); | |
} | |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
tests { | |
e: 41 3 13 13 13 65 35 7 19 13 11 15 65 67; | |
d: "Hallo Berlin !"; | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment