## Mathematica, <s>178</s> 134 bytes ##

-approx. 6 bytes from CalculatorFeline.

    (n=Characters/@{##2};x=n[[1]]/.Table[ToString@i->2+Floor[#/2^(7-i)]~Mod~2,{i,0,7}]/._String->1;""<>Table[n[[x[[i]],i]],{i,Length@x}])&

or

    (x=(f=Characters)@#2/.Table[ToString@i->2+Floor[#/2^(7-i)]~Mod~2,{i,0,7}]/._String->1;""<>Table[(f/@{##2})[[x[[i]],i]],{i,Length@x}])&