var da = 'iEXf0Y2+XquBGnurozO8m3bJnUc9CUeyfRn6n7BDmJvwyTd0A0Oixlygwh1AgH/iYsN1xhtyDDVJR/4wQ3vy2HSYTHUHrnfbUcDzuLcVkGb2qTbU3G4oN3kFWCNLcqJ8znqfTmYhTlJ8cTlkzkXIz+PLFTilWNPQUrCuSapISPHalSh3dt60e5OsAMSuhx/uhMWcx7PmHGF61b+H7Z7oG5rUyT3jUuD42Rkukx0TgoJa5YwQfwPU4ycHUSRNriXUvtiP5j767RMuwUDi8aHhzlaFgAyOrcrv01Hr1LzG7iJTny4FTilRwif+qL2OHxDMlpVE1y1xoIuYxnEq5F5QBsMRqXV5bpfWqmxuvDOy3rYhHWsLMXRjbfbrFpGT4BzUXLhPIAHqyia6ErqeuMg7GaFloE2c09M2mzqQs2DY76epBU7nLMaElHBsJY+RGtIj4GcFlskcHCfYggWSzTEIplLsJY9IiZVYRvzsX/3Qx7jwu1b/MXsCC3x4KwM1i0WauLbAGiiqkXBcWlvWHafsX0Oc6of3Nwqb2Uanvk74P6xP08IMVTZz2l+NCcH9k4Ccey5SJWN0rMuR2SZMdAq44e7esJgrc6/ka64Y9nFVU2jVQt0Vs7EHAyoW6ZqoQSwdCMXqIGtaGpDvTUh+EfBOFRANqarZFAdeVlKx/Ne81E1Bt2HoNWm4BaJ22gjM265T/efmqatSq2ECSWBfpjrJ0V4m249H04af5yYovydQfEzNuV9dX6H4iuRiEt05Ic237SrgiZdoTKO2V7BXY4hzFbBzOP50chixabI7n4Y2ITQGyhM+X8MBtvdwy6iztwIj8b60wnvVMC5tw2WEqCsflbGh1s1VS2H6feMZAgBBtwrwNn6SPWB82YaKt3oT6V1+a01724noDqWufeJatKTvqaduIRUtvlyOEAZY7kwUMU4U7gPC788liZEoS0zEH/Ee91Byl2dzoPu3JPbXeHoYg8HxdW1CG3t4xvS49kD3+9ZDqsEh2B3RY6cdwuydTHwKZwi5UO1htlPx2wCvZq3M71h0ncpACBSzm+zgTM34618XVwUBLQEpg+qnbhnjx5OiF/6vr7VckDomb59w0nrYxu2DzwBkTklzxef5CAfiTks/w3fu7iEZYFZgEStxz+MST2CwRwK+riwNlOZSNyKRBvTZD9SFnkPEIoBWXECodoTANluhBvu00AEauiuipPHkWzOvPSqPD6pQIP9QP4Q1CAs2HD9BJ+5phzafW4hZiDsL9h1JVjymXjOl/d1XobBFYSPpDQMizrG9LyBpzilILpwBm0KxIPUapE66fJ/oGgQ1auJkn2ppXtzuN3Sj1uv440P6lv74AFw+GZkbKxWTCo6d9EsG/dlyLXlJg12RqvdL/IRTXiZQaTa8+MB3lFn7clVhW52oPtOtAlI7rRyytfPU5ZLytAorX5RMQDCFxK9RAe+nzNBJEFTHCjHoJbbviPE5H/52xIO0RtcEC1f8p+FQ4Z9GwDl3CM4d0SMyifYK5aVANFzPIzXuARVUOMjqxkrwGH+cbCoJGEXa5mYXdnfk0o5fqWtaaiFLS/v+xVqcWTXGOEnfKXznAeR2WGx91mpgzG1+SkcAO+mh5hpYvhhGK4F6YSEA7Zpqv8w3tnkco2hdOTD9zjU85J6zHWlKfGzC7yb6epWBlc086F561rTar3DlI5pOED76UHc/5L8oK+mqeq79go1VqFBiLmSZEzGOLtCC2kROz8Mrq2M49wCDTK7w+Q8R4Wzn44UopL9WRlRkRr/G1PzVak37H3d1afyMHFSO6RHJORqKtHnqVV1jw76QiannPLy7YYs3ErcCXaGRS1LcTYQDFCT9HhZ444wYNCrMCzJwmxtdDlGl2ckrxaQE8Xiw+o4keGTY6DnEqN8PdVNEq6TjYuSlG8RHjZh8UiPxdoVDXF9DW/JPhZ9l0TB8wFUeY7TXfplcAZzY7TiE2wfbM91gxun0ES9iaJGHHZTyZAS9btYjPaTgZeYYrCBxq/xgmJthz10GGKinu30DfOtM94WDjgV1sCa16VZMp1tbAnxtg9y8+aEcRqikLIJH9N4HRPnFjP6fm4kUjTaWE+TtqKcxFPRKb/dZa/nydjzh6oC7ZR7cT5T58rxHynuJHqESDalA9GNH/hHcG8gIbaCoD/0KgeMcBTW7G2yAZlIHJzlfw40fiGwKUwkwQh1SHqyoxTNeaVhhr2RR/Abl9S3awcdg4KO+ewK/UqT8Op1e3S6XZCea2K4MGhqWkzoZ6Y7TK0ovJ2xVqWI/of8Aje27YBOYdQaWbupCgRV1oH77hHePxxML7UieuShK4CmnT0pmJPAh3FjfdMJDLWVywK6fe3ju2D0S5ziZDH/2Pg//4wOYqFBsT+fYwKX8uwwwSjfpFuqqCgxPpC44CuupW2hn84McAtbZMaFlAzydUQ/x+4Pn3nST5XB1HG+d5gvLTMLZPKUI6aBJ8Hc7SEOXvFMHcNXCScb5854YcMcHbt692bD2hB5zLcpfGHx1/5C9gWowINwvf1G+Z3YQx4JTB86sOaDxjixweRPLhGrurNI4jFGhFzSWwwgjNQrl7gGIc0tMy03MQFcs6pm+4MBTF1R63E2/gM8Ico7NwEFu2p0q8eEZqKVJVhLP3NQEc8ILN3T/CPtPF6nyLH5zJLBQdmcbDhxop3Nl5/a4ICkKit5dApNPtns++0Mc14SdzjlpKODwX/2kJRVbpxHpwMmdBWVs9+mNhsB7T/m5IQHfT+6/ddDj/RZ5TfPEGlNwYzwZ1utABDilAjy75XMMK/6T358JQmqmVNOzTmw/YAfvECPengFOOrmmHDDnWWs8rgrMCIBOwYtT9YHtJKf56wLzHBGeOkIFzp1Q5F+61Wp7k3lMP0ZaPKeAiosrPNcTVWQ8MOYgxUJvvncfu4y+UPtrn8Onvh9vWl0VZen2lEqG20zzCAJUnTmKJxwmb0VfxoRlIdxMSgyErzcqCtsBmGlb6lKR6TT8N/K6b8sCK00w2IichJw6dxTEQ2YSAAHKwG9zx+C5lfVh+5IZhM+eKV1djUSiAXaT7GJIVQONwMIV67T4j1h/iahj+2m5pZs3+4bQ03RL3I4nisx+y0cbowSI1hCoQC5vV4YwQK3lINe0AMH/nfMBickgZuhrqq57dlhuhzdJtsen9eu/HaN8BAsf/pSsP9Cle4pRlVD4iZ23Cdeo2363Enk+cUbypmHn3WIMLsNoLuRCMRb51cWdNuerL2nMfA2cF9mXqbx0fn1nWnK3kdE/cIzvxTxhSTFc0S4dxAQ1MVNiPmnl6BX/dv91CUhZ2T4GQn+SV93uHUjzY7bxl4HJ5O6B+m7gGHssS0V/13os1bB/4Yw4oML+gE/+1O7DGZAkKnoZNtPQ3llEUat6Z7NJd8Um1hC2psGvrhyXT7Vwa0fEmaFwHVRqcAqQp8hlBC2z1ux0ThDV3f93gO3MQaCbY90YZBdzQAPN6IdtVKfkfZ0TBb1KVQf+VaUvN9isaYcuY1TZe+Keqi4jo4PKJ7GJ9PGlOJsQnAkUaskY3njDQA2DCjjIQv+/jRdgHmIMwXTmGDiRFxJMLA6io/tiay7h2SyUcvaj9Ona3ah8cAOTxN6WaYa9itrFHooC5JNdAztBzefBJgDGtv0uc7iqm/PkBTBxhhjDvHhKLG29FShyq6jiRtoLspLhIYflaURi/Rgrdzpk+qpMuHd+IvDsIX/WQfLeLkz5A9WNVqEjnl4n5ccvJwBB46SjDmkOn+nIyyS9O2VKO2y7tdadRfK8dMkgLrXfLCtyBvsE7x6udBbrjnDNBPhyNwGIs3Z70W8dW3OsL7qYNEtRT+moYVgETQx4PjIY8xdduXs8gMzi18qRqB8R2vjnRN0ncPM4dBsKmx+audkp55PEZJwht4ezrTIundAcXK6yTF8/7FWpTPA6gmxqUPiyM0y7/oQLxTaWO/Omo1rJqk8PP54hQcwPTdni3dosa85m54Fd875jua1AQuG1VeowF9uLlOjNvWOUzAQYU/HwJOIFaLFttWBSEl0R7WHjyhvwcv3RwiLfMFbmycXPZJxD3RY6+jHLyWU7wyPchhZG81VPaqzTThXs0EMwsdSL9fRxbpsaQ7JojFYqMewYZeNvXpM0Px3MS/T9Pne3kC0GFxPtJp1VC4/X+zzUmcjWcZqf/fBlageTaORUlAltnsDIFd+ehMITR34KzCbqbDvW/uBVkTQXl5zI8HVSGTigFq5Fi07/lU88GASPpCGJtcLS2T87aTty+Qd7EI0BpQkf4TmOYmBAiHcgFAvhUkPh13WClzDI5YF9GOE5UoBpE0v7QdO4oZ5axf/x1gDh1gqQ0GuUa2Ku+EFg6CfUSQQx+4LpXvLLLbZytvqLwVwhHXMvDHjPnRZWt5LKzhgkpS5fM74b21AjefurYZMTM0aMgkedAdEZ7xZHskQ1h4okeo6wKkf7fifHKADeoYymw53b9qH733SQkcdRMWbjxvP9w0EKIjbMDlAMVLvnz+ThK3kj5RPxfgO0xLeGj60ioPErsSRLZzmCvZ/Nglo2T5OBweSO41KWu87ZnsO89TKNlO8Rn4GxDtWNuVW3T8u9upIMIKhDqYC4O98zB43NVT/0PzDDbjbx6zxZHifZoKfVPxijx1+rHhu8BvOdzowBLrPDHHO8/LjFrYZlJ0uUj9V8z72fdcexpb1qq/4++EpDjFi+2Z7azjjOOSuYZoA6bjVuNXZwUhv/qWqCUIACVOPEuXUB++EhQWG2x+9ugozDAxcoW14dREeW5ohOOs0UlCxwGeH+DJhjV8vDLk3EJhWKaYqbdCoOrItelQ+pn5iAsbzZlXSqlRfiQpsb+SLa6mGX43OhT3dosuiqM0z1i0BkRYeTka70rIIxLIwfytmasDLPSCxa+k0VlH4+8bfpxELBoU3kXiNa6jTtgo5J8bBe/XxoVlsx49WdRNum/ThEEaSgiLjHa7Vd+eF/2/+PmTlzx8KiMaFVM9eoSsJkS8LXDVSpvmbJgUiszBNZ2DkUM7pwmniGa8oO6he8FQf+F0vRMnNr8VNQCjuDmzXKQGj7TXmlQV+5u1+akVu3QdXibJa9sLxDzec27b1OwO634Gp5PgpESTxTksosL7JagZ7oH3n+VkEpoYWyveR5q/oS0EIfCPlbvTgFLY6dmrojzYlqtbXQ+yhbhKSgjtx5Ut/jR0DKbRysFReZev5qqLXBFDalp+6dgX1zkPdgP1IwxJhHKZuh/1XjIPQoZzzYesSmbLv3pWZAKDY3n+a4zZAxDaRF0/Spg0pTTJ2GmZCu5FKHEkOke27G6di9AAvVkWcDYJB+WPoEaO5HeNGj5SkPQhuH5Zxi42iM5joTpaT2FUnyrCdwNjV2mbZiU4tRM8VLLsAQN5a1AiZQT3PU5QS2OTZWrTDZHoFfVyc16FgAYS37rilKNsLSabpOzDAP4nP1oHXtO0jhpFQqPldcuVaZg1RUX8ITfJdCCgBRwjU2yc5rThmklcM4KfpH+1IVUhGf0HU/bR2Pft8Be8LXaoiSK8HjR+L5OZO+1PQ10OUZ0kGPBog2KopwE+EA3LULcjb47uVDbg2KUHjHQualTzlrI93+DNA4ETOo3L6mLNwbPNYum4/Y6oadJ3tEKmtU74vb9VUrNLRaV269IA1+dCXzp5Ttv5GeYJZpcRgruagOyM1RBqT2ZCQOAt6xnNZjysn+5nrScDNvg7DTvrbfHcesWgQ2dUudzyI8bU67KrdDOEavQNhCIphPtNUgJW/DZ3aBNBh2CG64ofw4l+etEuVqcb7yz+RIcAY4U+FikI1fldmNOk32ZaMb8neja0uokhN3yv0R7wH3dX+A6JXX0gDXyAja++LeS7DI/5Y3/E3M2vSg4rk184EkTSITR3LnRv7mOb8ZjxQLiabYDwRUo769MqdusuA9fqUvRsXhz3JReYON5r2OMJuKEvKp92sHsrequ1aar7tWhOKKkwPa4wYUIDIoancNwoUdbt13Eo6xX8SWexexXAAZuIQ/41UtsnCPGzSgaoMRuqxCPPo2HXehgFFk18R6iMDw/kG9ppCdrF3bzN5/L2V05COnCSJPZvmvMTmiVR4W3eHll5oAtlZSSkSn6oMghj3j7jJ2UAH40rosGPGm0ck/nMBK/IQ1v2E99QDecgJgbNkxZcnPAbu+U6pUeOhhDcpLqPwhXxC3s6qk6sBx8+hMBFdWEOD7ddv1deeDzOZFoBfw4sQjTMSxR/fM2/GHjhOOFFu53BN4K4uOPiO7pepHiInuJUfDAWu/URCxHSBB1FrdgrsVs3hnQi9Q3LehQUJmgaDTCcEnBFnZW45no9A18DAT5j81ROSeMhg5dv7tWuFQFtkIMtb5x2jtwkbRUzFd/7/f6Gpl1lxfFriYW2Q3/+ely+5sGBaVAr2y1D6EuVucCUw1H6/eI2klJ3UlP6NmlDzZSNy4oLXv6vIkgqflSX5VyTKpF7l3ZsTH2qfKLSKp0OpKgtrDsvVD62QUvwqbJUVAu6/6i0VUZqQZWHb2ceBgKXmpIyrhw2DciixUy/1bSwDh0w6hON+e798ogBQm99DXRX8yvAty+L0of2mVq8rM3me9TschwoDWQGO1fvNsxDx+zcxakEhs2ZxawvvFPjLsybi9f9UbcrhHo2HD3j01sORRJVxVn7INqhNm0NZHV0H/Q79ZtrUMkrjIUisVckfEtcUK/gIu5Ggryg7+jEXz7OoIcsnp08Qc3lre5fzutJLSIRgUuAn7BBx6+qw7yI9QZEmY68WxcirYXj1uhk4xQEc5BQHl3YA+s+TQBM3Gg+enUypwAZnBgKsScsFvTNSErlPTzOzVxql9Y4OE8Cg4KkLl/nkoFB9S0dzbgfgaYQzWhQRBWFIdBA3uN3HFiYCFdPNK44LzvlNRh6q1xlAC21BtjFtXj77x51hyep945wsW8EKtwCjg3sJPMjsIxJWQqrwTr6rfyhpqRNqVZtTyCB37ftEfEJAncONC3+rm4e37+Scr8OX9UiG8vWafaWAZdY3DDiQn/vEc2wd2HYhcyW+JoiV/4f5Y2TJnVIq83iBhQnDVumj7ReORU4DEPWSEdFEjNCVvzi1pD/asoZazaOLGUQgcHiQZWuDp2GjLXv5tsatPm4Ld6GC5YIr33pk5W/rR3PDAnKQ3G8fAUhcsztaVGIxANwkLFEPY7KgFFI2oZ3Xwv+Gg9DsOePi8yDZbsjH1OEi+s1gSiWnyIYkc3FGyiy/sXB0G9DYDkoTeM5D+H08M/P4t477W85tAi0K80VCw9rUPU8+/FQgsgKlsFgZM150F9TBGcogEaDtTOYhTwWnCGS8pAPSDUZqKOAnFTjKqfNHVBGK/M/ZRx+mF2PUQnP/cG70XcjpSOngZaURwKxzlnd/WqeAwhNBKhn2SKYEYmmnxy3l8f4yI0sC1g/khpUbGSA06/iay+XJ90umpMYgCfaC0He1U2natSuhMlHThJSwzUKJlj2R1Ita1pRpn/3g1SLlu/EL7JtdfW4eZpZ3qhNP77ir/vn9gytaSXJaHYdMI3pKxstmM4DUE+qCD1NxAzzHuw3S/ZBtS2ABveumPpAqr99Zs8YJXQpNcrpa7ihY8/d6dsqvOKM5r8by7Tq9OVC/yzeEvHoyloCdJou21MZOluQrFQL9Eu+rXh5DwDxUmm/OeZlA8zssB4PetYbTyjhypj/E7+ynsAxn1ZFKaBfRG/oxsxSU8IxBGMf38R4VJtqm2NSq6Zj2s8oqd+eR5lCp3uU6hoznHgZ4//23rUXu+QmCeDwb44tQoQdCosa8FZ7zdYSCpAZ0UtXIsuZzZ1Lwqk4D3jYoHxQIVUgTsotzqW0qqyRj7cLK+4t1DFnB1XtGYO69YgqiDdd6h1kbZUBPKDFau4OUzfiq2tPU/JfuqxzWc5g8ZHKUQ2DUWyYryEeYAzEru1/oQhaXuSB43vRMp63/G+ja/E38TBNKVYeaBpK/oEcAlgnEOyfCRTbnJvzCvkjmWb/8JEnYc14XlOc7BPf9EAJelVaAPqwHq2Ps+VdC/E5FqwpP1klAl4yDGWLSIlFyzRbQcMnsdczmepNfu/KUZSVMlneE2DoQ29iUBdFKaHrNieLzWZss9hKVPoDNscUvlTLmFqYQP5D09PujS3C0S8Bip+CuEbgCqOfKlowF6pp5U+bNUiOoLGzLxdatSnu0Sw/A1CEm4lkNK0pccNXUb/wEkWRv57BiQVpnGPFG/KTU5tfl5gx35VTwNZrtmK1N4ISIUJ2ndXWRBNNyemPl6HpA8sRGfs6uU5hp85deBhpSC/R9CBQteRkHm95hT2KPl4bTQLOZZCGnBzp8yql5Nc8ajoHO3jXSLyEkmI4jFj/3oind8DgQpVXT+pzp459HYZJdBCBtf1CrZlTGjUEiQYv8dd1i8FHjBI9fQfroDicLhji18yNAvU+M/MY1Yljx3W6Vj9+l04QY3mpZyt7kyWz9ZJjC/O5zMH829LB9VrW19M6zaKy0N7eUF6iZj1CZmvgPMwtU0PMVAD7TYiQfT/QZqek4SL7lwphkoN4poA0jAWilLQ8mCFsme3aL1/0YFcqvSr3vcTrlNfAYgzXexgKHb4bIcYRWXnAh03288O8R1Ln3Boyg+x9JNp/JPxzwINKeTBbSVVoIbj8GJ8G7fmugHpp9q0K+RZSh43o+Q2ezZIGJBCJAHSc9nnb1Gx+OKMeW6uASh04wKraYPf+n+dgcFkFycTTOcsRM6g0+tVoyzKbprsKeTjXUxIgmgz0byjbub+BKPgwochIm5AblHWS/GdA2dRzRtI/IBR4uhS7pEk4PIRK5KypLzO1pQk87N9RB4dxl1l6L4VUzkbQ==';
Base64 is not encryption, it is an encoding. There are many Base64 encoding functions, most languags supply a version in their associated libraries.
For online decoding see Base 64 Encoder / Decoder.
Related
I need to transfer a generated 1920x1080 image out of a Node pipeline that has no connectivity to either the internet or me, with the only controllable output being plaintext logs
So in order to retrieve that image, I need some way to transfer that data through a log file, which is tricky given the image is around 45KB with .jpeg compression
Converting the image to a base64 data URI works perfectly, as I can copy it from the logs and see the image in my browser, but the size of the URI is unwieldly at 40k+ characters
Is there a more compact or efficient way of doing this?
This link gives insight: Binary To text Encoding
Base85 Base85/ASCII85 is probably most promising but offers no more than 5% improvement. Is ~42KB less unwieldy than 45KB? How long will the solution live, how "shareable" must the output be and must image quality be preserved?
If image quality for your purpose is not all that important, you may get better mileage out of fiddling with encoding options (JPEG is a lossy method of encoding so you could save significant space at the cost of letting the images get more grainy although at 45KB they probably already are (?)).
You may want to get rid of mention of URIs in your question. You're interested in Base64 as an encoding method (for which 64 common text characters are used as digits... like decimal uses 10, hexadecimal 16 and Base85 85 etc). Base64 is just a ubiquitous "standard" (actually a family of several standards - see Base64 Variants).
I have to encrypt a string within an XML element with "PKCS#7-Standard and Base64 coded" and also decrypt it when I get the XML as a response.
I guess I will receive a public key for encryption.
But the more I read about it the more confused I get.
I've also found a lot of code examples in Java and PHP, but I have to do it in Perl.
For the base64 encoding and decoding I have already found the module to do so
which works fine: MIME::Base64.
What I am curious about is that the paper says the security must follow these prerequisites:
RSA-Algorithm with minimum 2048 Bit
AES – Advanced Encryption Standard [RFC 3565] (256 Bit, CBC-Modus)
SHA-256
X.509 v3-certificate (V1.0.2)
PKCS#7 – electronic signature and encryption
I am totally confused as I thought I just had to encrypt with a public key and sign with private key. I have problems in understanding the prerequisites.
Is the module Crypt::SMIME from CPAN the right one?
How could I simulate the situation by creating certificates/keys by myself for testing?
Friends,
I am using J2ME WTK 2.5.2 for Application Mobile Development and I am using Base64 Encryption Method in join with Cipher. The Encryption and Decryption works are expected.
My problem is when I encrypt the String with Base64 Encryption or with Cipher, the Size of the String increases (ie if Original Size of String is 10 Characters, it increases size to 15 characters). I am storing some to the device itself so store space is an big issue. I looking for the Encryption method which does not increase the String Size.
Without a code example, it's not entirely clear what you are already doing. But many encryption modes (such as ECB or CBC) when combined with a padding scheme will produce encrypted data that is a little larger than the input.
If you need it to be exactly the same size, try a mode like CFB.
as the title says, I just have the very basic question of whether or not a file (let's say a txt file in this case) can be decrypted using a program that it wasn't encrypted with?
For instance if I encrypted a txt files with GPG, could I decrypt it with AES Crypt or openssl?
Thanks for the insight.
I assume you're talking about symmetric encryption since you included AESCrypt, which only supports symmetric encryption.
While there are standard encryption algorithms like AES and DES, and there are standard encryption modes like CBC and CTR, there aren't really any standard data formats for symmetrically encrypted content. (Yes, CMS can encode symmetrically encrypted messages, but I haven't seen a product that uses it this way.)
In short, everyone winds up building their own file format. In particular, OpenSSL and AESCrypt each has its own proprietary format. GnuPG uses something very close to RFC-4880 I believe, which like CMS can encode symmetric messages, but this isn't usually used this way. I made my own format for RNCryptor because I couldn't find a good standard for symmetric encryption.
In short, the answer is almost always, for symmetric encryption, "not unless the product explicitly says its compatible with some other product."
As long as the format of the file and the encryption algorithm are supported by the program you'd like to use for decrytping your file, it will work. That much for theory. In reality, even though I'm not an expert, I'd say OpenSSL is not meant for decryption of GPG encrypted files; also, AES Crypt sounds like it does just AES but GPG is a package and can do various encryption algorithms or ciphers, including AES, and even if the ciphers match, the file formats might still be incompatible and need conversion.
There's a good book you could read to get a pretty good understanding of this sort of stuff (I know, I read it myself): http://www.amazon.com/Cryptography-For-Dummies-Chey-Cobb/dp/0764541889 .
AES is just an encryption algorithm, like ROT13.
How and in which language it is implemented doesn't matter, which makes exchanging encrypted files easy: As long as both email programs support S/MIME they can decrypt files send by a different program.
So yes, you can decrypt files encrypted by a different program. But both must implement the same algorithms, you can't open a PNG file with a program that only understands how to display JPEG files.
Please bear with me as my understanding of audio codec is limited.
I have this audio source from a IPCAM (through a htto//... CGI interface).
I am trying to write several client programs to play this audio source on Windows, MAC, as well as Android phone. The audio is encoded in G711 (PCM ulaw).
Do I need to decode the PCM audio data to a raw audio data before I could pass it to the audio engine to play? If so, is there some sample code on how to decode it?
I am confused as somehow I believe PCM is already RAW. Could I just feed it directly to the audio engine on Android for example?
thanks much in advance
It depends on what API you are using to play sound, but most require linear PCM and you have µ-law PCM, so unless your API supports µ-law playback you will need to convert the µ-law sample values to linear.
With G.711 the compressed µ-law samples are 8 bits and these will be converted to 14 bit linear values which you will store in a buffer as 2 bytes per sample. There is a brief description of the µ-law encoding on the G.711 Wikipedia page.
You may find this useful:
u-Law companding algorithm in C